概要
キーワードや演算子の対訳表。
参考: Moving to C# and the .NET Framework, for Java Developers。
キーワード
| Java | C# | 関連記事 |
|---|---|---|
|
|
「抽象化」 |
|
なし |
キーワードではなく、Debug.Assert メソッドとして提供。 |
|
|
「while 文」 |
|
|
「switch 文」 |
|
|
「例外処理構文」 |
|
|
「クラス定義」 |
|
|
「while 文」 |
|
|
|
|
|
|
|
|
「if 文」 |
|
|
「列挙型とは」 |
|
|
「クラスの継承」 |
|
|
「論理値型」 |
|
|
「sealed」 |
|
|
「例外処理構文」 |
|
|
|
|
|
「if 文」 |
|
|
|
|
|
「名前空間の使い方」 |
|
|
「ダウンキャスト」 |
|
|
|
|
|
「外部エイリアス」 |
|
|
「クラスの利用」 |
|
|
「クラスの利用」 |
|
|
「名前空間の使い方」 |
|
|
「アクセスレベル」 |
|
|
「アクセスレベル」 |
|
|
「アクセスレベル」 |
|
|
「関数定義」 |
|
|
|
|
なし |
|
|
|
|
|
|
「switch 文」 |
|
|
「lock 文」 |
|
|
「コンストラクター」 |
|
|
「例外処理構文」 |
|
なし |
|
|
なし |
[Nonserialized]「属性」を利用。 |
|
|
「論理値型」 |
|
|
「例外処理構文」 |
|
|
|
|
|
|
|
|
「volatile」 |
|
|
「while 文」 |
Java にないキーワード
Java にはないか、あっても少し挙動の違うキーワードの一覧です。
| キーワード | 説明 | 関連記事 |
|---|---|---|
|
整数演算のオーバーフロー時に例外を発生させるかどうかを選択する。 |
|
|
定数を作る。 Java はキーワードの予約のみで、実際は機能を持っていません。 |
「const」 |
|
メソッドを参照するための型を作る。 |
「デリゲートの定義」 |
|
イベント ハンドラーの登録口を作る。 |
「イベント」 |
|
キャスト演算子用。暗黙の型変換を認めるかどうかを指定する。 |
|
|
いわゆる goto 文(無条件ジャンプ)。 Java はキーワードの予約のみで、実際は機能を持っていません。 |
「goto 文」 |
|
ジェネリクスの共変性/反変性を指定する。 |
|
|
(new 演算子の他に) 基底クラスのメンバーを隠して再実装するために使う。 |
|
|
演算子をオーバーロードする。 |
|
|
メソッドの引数を参照渡しする。 |
|
|
C# では、仮想メソッドをオーバーライドする際に override 修飾子を付けます。 (スペル ミスによるオーバーライド失敗を検出できるように。) |
「仮想メソッド」 |
|
Java の protected メンバーは、派生クラス内からだけでなく、パッケージ内の他のクラスから参照できます(C# で一番近いのは protected internal)。 C# の protected メンバーはクラス内、もしくは派生クラス内からのみ参照できます。 |
「アクセスレベル」 |
|
読み取り専用メンバーを作る。 Java でいうところの、フィールドに対して final を付けた時と同様の挙動になります。 |
「readonly」 |
|
値型を作る。 |
「構造体とは」 |
|
unsafe コードを有効にする。 |
|
|
Java では全てのメソッドが仮想メソッドになりますが、 C# では virtual 修飾子を付けたものだけが仮想メソッドになります。 |
「仮想メソッド」 |
Java にないコンテキスト キーワード
C# のいくつかのキーワードはコンテキスト キーワードになっていて、特定の文脈でのみキーワード扱いされます。
| キーワード | 説明 | 関連記事 |
|---|---|---|
|
イベントのハンドラー追加/削除用のアクセサーを定義。 |
「イベント」 |
|
動的な変数を定義。 |
「動的型付け変数」 |
|
プロパティ/インデクサーのアクセサーを定義。 |
「プロパティとは」 |
|
クエリ式。 |
「クエリ式」 |
|
部分クラスを作る。 |
「クラスの分割定義」 |
|
変数を定義(型推論)。 |
「型推論」 |
|
ジェネリクスの型制約を付ける。 |
「制約条件」 |
|
イテレーター ブロック中で値を返す。 |
演算子
| Java | C# | 説明 | 関連記事 |
|---|---|---|---|
|
|
メンバー参照。 |
「クラスの利用」 |
|
|
メソッド呼び出し。 |
「関数」 |
|
|
配列の要素参照。 |
「配列」 |
|
|
インクリメント/デクリメント。 |
|
|
|
インスタンス生成。 |
「クラスの利用」 |
|
|
インスタンスの型を調べる。 |
「ダウンキャスト」 |
|
|
(単項)数値の符号反転 /(2項)数値の加減算 / 文字列の連結。 |
「算術演算子」 |
|
|
文字列の連結。 |
「文字列連結」 |
|
|
論理否定。 |
「論理演算子」 |
|
|
論理積 / 論理和(短絡評価版)。 |
「論理演算子」 |
|
|
論理積 / 論理和 / 排他的論理和。 |
「論理演算子」 |
|
|
補数(ビット反転)。 |
「論理演算子」 |
|
|
左右シフト。 |
「シフト」 |
|
なし |
C# では、符号付き整数の右シフト( |
「シフト」 |
|
|
数値の乗除算、剰余。 |
「算術演算子」 |
|
|
等値比較。 |
「関係演算」 |
|
|
大小比較。 |
「関係演算」 |
|
|
条件演算子。 |
「条件演算子」 |
|
|
代入。 |
「代入演算」 |
Java にない演算子
| 演算子 | 説明 | 関連記事 |
|---|---|---|
|
値が null の時に別の値に置き換える。 |
|
|
ラムダ式を作る。 |
「ラムダ式」 |
|
例外を投げる代わりに null を返す型変換。 |
「ダウンキャスト」 |
|
整数演算のオーバーフロー時に例外を発生させるかどうかを選択する。 |
|
|
T 型の規定値(値型なら 0 や false、参照型なら null)を返す。 ジェネリクスで利用。 |
「既定値」 |
|
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日まで。 |
|
