目次

概要

キーワードや演算子の対訳表。

参考: 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日まで。

更新履歴

ブログ