概要
キーワードや演算子の対訳表。
参考: Moving to C# and the .NET Framework, for Java Developers。
キーワード
| Java | C# | 関連記事 | 
|---|---|---|
abstract
 | 
		
abstract
 | 
		「抽象化」 | 
assert
 | 
		なし | キーワードではなく、Debug.Assert メソッドとして提供。 | 
break
 | 
		
break
 | 
		「while 文」 | 
case
 | 
		
case
 | 
		「switch 文」 | 
catch
 | 
		
catch
 | 
		「例外処理構文」 | 
class
 | 
		
class
 | 
		「クラス定義」 | 
continue
 | 
		
continue
 | 
		「while 文」 | 
default
 | 
		
default
 | 
		「switch 文」「既定値」 | 
do
 | 
		
do
 | 
		「do-while 文」 | 
else
 | 
		
else
 | 
		「if 文」 | 
enum
 | 
		
enum
 | 
		「列挙型とは」 | 
extends
 | 
		
:
 | 
		「クラスの継承」 | 
false
 | 
		
false
 | 
		「論理値型」 | 
final
 | 
		
sealed
 | 
		「sealed」 | 
finally
 | 
		
finally
 | 
		「例外処理構文」 | 
for
 | 
		
for / foreach
 | 
		「for 文」「foreach文」 | 
if
 | 
		
if
 | 
		「if 文」 | 
implements
 | 
		
:
 | 
		「C# のインターフェース」 | 
import
 | 
		
using
 | 
		「名前空間の使い方」 | 
instanceof
 | 
		
is
 | 
		「ダウンキャスト」 | 
interface
 | 
		
interface
 | 
		「C# のインターフェース」 | 
native
 | 
		
extern
 | 
		「外部エイリアス」 | 
new
 | 
		
new
 | 
		「クラスの利用」 | 
null
 | 
		
null
 | 
		「クラスの利用」 | 
package
 | 
		
namespace
 | 
		「名前空間の使い方」 | 
private
 | 
		
private
 | 
		「アクセスレベル」 | 
protected
 | 
		
protected
 | 
		「アクセスレベル」 | 
public
 | 
		
public
 | 
		「アクセスレベル」 | 
return
 | 
		
return
 | 
		「関数定義」 | 
static
 | 
		
static
 | 
		「静的メンバーの使い方」 | 
strictfp
 | 
		なし | |
super
 | 
		
base
 | 
		「基底クラスのコンストラクタを明示的に呼び出す」 | 
switch
 | 
		
switch
 | 
		「switch 文」 | 
synchronized
 | 
		
lock
 | 
		「lock 文」 | 
this
 | 
		
this
 | 
		「コンストラクター」 | 
throw
 | 
		
throw
 | 
		「例外処理構文」 | 
throws
 | 
		なし | |
transient
 | 
		なし | [Nonserialized]「属性」を利用。 | 
true
 | 
		
true
 | 
		「論理値型」 | 
try
 | 
		
try
 | 
		「例外処理構文」 | 
...
 | 
		
params
 | 
		「params キーワード」 | 
void
 | 
		
void
 | 
		「引数が複数ある関数、引数のない関数、戻り値のない関数」 | 
volatile
 | 
		
volatile
 | 
		「volatile」 | 
while
 | 
		
while
 | 
		「while 文」 | 
Java にないキーワード
Java にはないか、あっても少し挙動の違うキーワードの一覧です。
| キーワード | 説明 | 関連記事 | 
|---|---|---|
checked / unchecked
 | 
		整数演算のオーバーフロー時に例外を発生させるかどうかを選択する。 | 「checked キーワード」「unchecked キーワード」 | 
const
 | 
		定数を作る。 Java はキーワードの予約のみで、実際は機能を持っていません。 | 「const」 | 
delegate
 | 
		メソッドを参照するための型を作る。 | 「デリゲートの定義」 | 
event
 | 
		イベント ハンドラーの登録口を作る。 | 「イベント」 | 
explicit / implicit
 | 
		キャスト演算子用。暗黙の型変換を認めるかどうかを指定する。 | 「演算子のオーバーロードの方法」 | 
goto
 | 
		いわゆる goto 文(無条件ジャンプ)。 Java はキーワードの予約のみで、実際は機能を持っていません。 | 「goto 文」 | 
in / out
 | 
		ジェネリクスの共変性/反変性を指定する。 | 「ジェネリックの共変性・反変性」 | 
new
 | 
		(new 演算子の他に) 基底クラスのメンバーを隠して再実装するために使う。 | 「基底クラスのメンバーの隠蔽」 | 
operator
 | 
		演算子をオーバーロードする。 | 「演算子のオーバーロードの方法」 | 
out / ref
 | 
		メソッドの引数を参照渡しする。 | 「参照渡し」「出力引数」 | 
override
 | 
		C# では、仮想メソッドをオーバーライドする際に override 修飾子を付けます。 (スペル ミスによるオーバーライド失敗を検出できるように。) | 「仮想メソッド」 | 
protected
 | 
		Java の protected メンバーは、派生クラス内からだけでなく、パッケージ内の他のクラスから参照できます(C# で一番近いのは protected internal)。 C# の protected メンバーはクラス内、もしくは派生クラス内からのみ参照できます。 | 「アクセスレベル」 | 
readonly
 | 
		読み取り専用メンバーを作る。 Java でいうところの、フィールドに対して final を付けた時と同様の挙動になります。 | 「readonly」 | 
struct
 | 
		値型を作る。 | 「構造体とは」 | 
unsafe
 | 
		unsafe コードを有効にする。 | 「unsafe コード」 | 
virtual
 | 
		Java では全てのメソッドが仮想メソッドになりますが、 C# では virtual 修飾子を付けたものだけが仮想メソッドになります。 | 「仮想メソッド」 | 
Java にないコンテキスト キーワード
C# のいくつかのキーワードはコンテキスト キーワードになっていて、特定の文脈でのみキーワード扱いされます。
| キーワード | 説明 | 関連記事 | 
|---|---|---|
add / remove
 | 
		イベントのハンドラー追加/削除用のアクセサーを定義。 | 「イベント」 | 
dynamic
 | 
		動的な変数を定義。 | 「動的型付け変数」 | 
get / set / value
 | 
		プロパティ/インデクサーのアクセサーを定義。 | 「プロパティとは」 | 
from / select /whereなど
 | 
		クエリ式。 | 「クエリ式」 | 
partial
 | 
		部分クラスを作る。 | 「クラスの分割定義」 | 
var
 | 
		変数を定義(型推論)。 | 「型推論」 | 
where
 | 
		ジェネリクスの型制約を付ける。 | 「制約条件」 | 
yield
 | 
		イテレーター ブロック中で値を返す。 | 「イテレーター ブロック」 | 
演算子
| Java | C# | 説明 | 関連記事 | 
|---|---|---|---|
x.y
 | 
		
x.y
 | 
		メンバー参照。 | 「クラスの利用」 | 
f(x)
 | 
		
f(x)
 | 
		メソッド呼び出し。 | 「関数」 | 
a[x]
 | 
		
a[x]
 | 
		配列の要素参照。 | 「配列」 | 
++, --
 | 
		
++, --
 | 
		インクリメント/デクリメント。 | 「インクリメント・デクリメント」 | 
new
 | 
		
new
 | 
		インスタンス生成。 | 「クラスの利用」 | 
instanceof
 | 
		
is
 | 
		インスタンスの型を調べる。 | 「ダウンキャスト」 | 
+, -
 | 
		
+, -
 | 
		(単項)数値の符号反転 /(2項)数値の加減算 / 文字列の連結。 | 「算術演算子」 | 
+
 | 
		
+
 | 
		文字列の連結。 | 「文字列連結」 | 
!
 | 
		
!
 | 
		論理否定。 | 「論理演算子」 | 
&&, ||
 | 
		
&&, ||
 | 
		論理積 / 論理和(短絡評価版)。 | 「論理演算子」 | 
&, |, ^
 | 
		
&, |, ^
 | 
		論理積 / 論理和 / 排他的論理和。 | 「論理演算子」 | 
~
 | 
		
~
 | 
		補数(ビット反転)。 | 「論理演算子」 | 
<<, >>
 | 
		
<<, >>
 | 
		左右シフト。 | 「シフト」 | 
>>>
 | 
		なし | 
C# では、符号付き整数の右シフト(>>)は算術シフトに、 符号なし整数の右シフトは論理シフトになります。
 | 
		「シフト」 | 
*, /, %
 | 
		
*, /, %
 | 
		数値の乗除算、剰余。 | 「算術演算子」 | 
==, !=
 | 
		
==, !=
 | 
		等値比較。 | 「関係演算」 | 
<, <=, >, >=
 | 
		
<, <=, >, >=
 | 
		大小比較。 | 「関係演算」 | 
x ? y : z
 | 
		
x ? y : z
 | 
		条件演算子。 | 「条件演算子」 | 
=
 | 
		
=
 | 
		代入。 | 「代入演算」 | 
Java にない演算子
| 演算子 | 説明 | 関連記事 | 
|---|---|---|
??
 | 
		値が null の時に別の値に置き換える。 | 「null 合体演算子」 | 
=>
 | 
		ラムダ式を作る。 | 「ラムダ式」 | 
as
 | 
		例外を投げる代わりに null を返す型変換。 | 「ダウンキャスト」 | 
checked / unchecked
 | 
		整数演算のオーバーフロー時に例外を発生させるかどうかを選択する。 | 「checked キーワード」「unchecked キーワード」 | 
default(T)
 | 
		T 型の規定値(値型なら 0 や false、参照型なら null)を返す。 ジェネリクスで利用。 | 「既定値」 | 
sizeof(T)
 | 
		T 型のサイズを返す。 | 「unsafe コード限定機能」 | 
stackalloc
 | 
		スタック上に配列を確保する。 | 「unsafe コード限定機能」 | 
typeof(T)
 | 
		T 型の型情報を取得。 | 「実行時型情報の取得」 | 
基礎的な型
参考: 「組込み型」
| 種類 | Java | C# | 注釈 | |
|---|---|---|---|---|
| 論理型 | boolean | bool | ||
| 符号付き 整数  | 
		1byte | byte | sbyte | Java の整数型は符号付きのみ。 | 
| 2byte | short | short | ||
| 4byte | int | int | ||
| 8byte | long | long | ||
| 符号なし 整数  | 
		1byte | byte | ||
| 2byte | ushort | |||
| 4byte | uint | |||
| 8byte | ulong | |||
| 浮動小数 点数  | 
		4byte | float | float | いずれも IEEE 754 形式 | 
| 8byte | double | double | ||
| デシマル | なし | decimal | Java の場合は BigDecimal クラスを利用。 C# の decimal は IEEE 754-2008 形式ではない。 | |
| 文字 | char | char | UTF-16 | |
| 文字列 | String | string | いずれも不変なオブジェクト。 | |
| オブジェクト型 | Object | object | ||
| 他 | Date | DateTime | 扱える範囲が異なるので注意。 Java は1970年1月1日以降(上限は未定義)。 C# は1年1月1日から9999年12月31日まで。 | |
