キーワード (C Sharp)

この項目では、プログラミング言語の1つであるC#におけるキーワードに関して説明する。
この項目は、プログラムの細かい説明には立ち入らず、他の言語と比較できるような説明を目的としている。
C#のキーワードの特徴.
C#にはいわゆる予約語としてのキーワードの他、
特定の文脈においてだけ意味を持つ文脈キーワードを持つ。
予約語としてのキーワード.
以下の77語が、予約語としてのキーワードとして指定されている。
予約語は初めのバージョンであるC# 1.0より追加されていない。(使用可能な文脈が増えたものは存在する)
codice_1 codice_2 codice_3 codice_4 codice_5 
codice_6 codice_7 codice_8 codice_9 codice_10 
codice_11 codice_12 codice_13 codice_14 codice_15 
codice_16 codice_17 codice_18 codice_19 codice_20 
codice_21 codice_22 codice_23 codice_24 codice_25
codice_26 codice_27 codice_28 codice_29 codice_30 
codice_31 codice_32 codice_33 codice_34 codice_35 
codice_36 codice_37 codice_38 codice_39 codice_40 
codice_41 codice_42 codice_43 codice_44 codice_45 
codice_46 codice_47 codice_48 codice_49 codice_50 
codice_51 codice_52 codice_53 codice_54 codice_55 
codice_56 codice_57 codice_58 codice_59 codice_60
codice_61 codice_62 codice_63 codice_64 codice_65 
codice_66 codice_67 codice_68 codice_69 codice_70 
codice_71 codice_72 codice_73 codice_74 codice_75 
codice_76 codice_77 
文脈キーワード.
文脈キーワードは、特定の文脈以外では識別子として使用できる。
C#では文脈キーワードが積極的に利用されており、機能追加の際に度々追加されている。
以下に文脈キーワードが初めに導入されたバージョンを示す。
予約済み識別子.
連続した2つのアンダースコアcodice_117を含む識別子は、処理系によって予約されている。例えばcodice_117で始まる拡張キーワードを提供する処理系があるかもしれない。
キーワードを識別子として使用する.
全てのキーワードはcodice_119のようにcodice_120で修飾することで識別子として扱うことができる。
通常の識別子もcodice_120で修飾することができ、修飾されていない状態の識別子と同等に扱われる。
型に関するキーワード.
ユーザ定義型のキーワード.
class, struct.
C++では、クラスと構造体の違いは可視性の既定値が異なるのみであるのに対し、
C#では、構造体は値型で継承不可など、クラスとの差異が大きい。
enum.
Javaでは、列挙型がクラスの延長であるのに対し、
C#では、整数型を型安全に扱うための機能である
修飾子.
可視性、アクセス可能性.
private, internal, protected, public.
C#では、未指定時の既定値は選択肢の中で最小のものとなる。
<br>対して、Javaでは未指定時はパッケージ内から可視となる。
クエリキーワード.
LINQのクエリ式で利用されるキーワードのうち、予約語はcodice_33のみで、他は全て文脈キーワードである。
from (文脈), in.
codice_141
where (文脈).
codice_142
group (文脈), by (文脈).
codice_143
join (文脈), in, on (文脈), equals (文脈).
codice_144
select (文脈).
codice_145
into (文脈).
codice_146
let (文脈).
codice_147
orderby (文脈), ascending (文脈), descending (文脈).
codice_148 <br>
codice_149
その他.
1文字のアンダースコア (文脈).
Java 9でもアンダースコアがキーワードに指定された。C#では文脈による判断を行うことで破壊的変更を防いでいる。
キーワードを使わない構文.
他言語ではキーワードを利用するが、C#ではキーワードを利用しない例を示す。
継承.
C#ではC++の継承の構文を引き継いでおり、
codice_152の後ろに継承するクラスと実装するインターフェイスをcodice_153区切りで記述する。
プロパティ.
C#では専用の構文でプロパティ宣言を行う。