概要

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

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