概要

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

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