キーワードや演算子の対訳表。
参考: 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 にはないか、あっても少し挙動の違うキーワードの一覧です。
| キーワード | 説明 | 関連記事 |
|---|---|---|
checked / unchecked
| 整数演算のオーバーフロー時に例外を発生させるかどうかを選択する。 | 「checked キーワード」 「unchecked キーワード」 |
const
| 定数を作る。 Java はキーワードの予約のみで、実際は機能を持っていません。 | 「const」 |
delegate
| メソッドを参照するための型を作る。 | 「デリゲートの定義」 |
event
| イベント ハンドラーの登録口を作る。 | 「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 修飾子を付けたものだけが仮想メソッドになります。 | 「仮想メソッド」 |
C# のいくつかのキーワードはコンテキスト キーワードになっていて、特定の文脈でのみキーワード扱いされます。
| キーワード | 説明 | 関連記事 |
|---|---|---|
add / remove
| イベントのハンドラー追加/削除用のアクセサーを定義。 | 「event キーワード」 |
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 | 条件演算子。 | 「条件演算子」 |
= | = | 代入。 | 「代入演算」 |
| 演算子 | 説明 | 関連記事 |
|---|---|---|
??
| 値が 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日まで。 | |