概要
キーワードや演算子の対訳表。
参考: 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日まで。 |