.NET MAUI Blog プログラミング

【識別子の命名規則】C#のキーワード(予約語)一覧

2023年3月2日

C#予約語一覧、キーワード一覧

識別子

識別子とは

名前のことです。プログラムに登場するすべての要素(クラス、メソッド、変数、など)は、お互いを識別するために名前を持っています。C#の命名規則は自由度が高いため、ほとんどの文字を識別子として使用することができます。

命名規則

しかし、一般的ではない名前をつけることにメリットはほとんどないため、以下のルールに従って名前をつけることをおすすめします。

  • 1文字目はアルファベット、またはアンダースコアであること
  • 2文字目以降は、1文字目で使える文字、もしくは数字であること
  • 変数名に含まれるアルファベットの大文字/小文字は区別される
  • 予約語、コンテキストキーワードでないこと

<例>
・sample100
・_sample
・SAMPLE
・Sample_sample
forth、form(予約語を含んだ識別子は使用可能)

<例>
1sample(数字で始まっている)
・i'mSample(記号が混在している)
for(予約語であるため使用不可)

予約語

予約語とは

C#としてあらかじめ意味が決められているキーワード(単語)のことです。

主な予約語

abstracteventnewstruct
asexplicitnullswitch
baseexternobjectthis
boolFALSEoperatorthrow
breakfinallyoutTRUE
bytefixedoverridetry
casefloatparamstypeof
catchforprivateuint
charforeachprotectedulong
checkedgotopublicunchecked
classifreadonlyunsafe
constimplicitrefushort
continueinreturnusing
decimalintsbytevirtual
defaultinterfacesealedvoid
delegateinternalshortvolatile
doissizeofwhile
doublelockstackalloc
elselongstatic
enumnamespacestring

コンテキストキーワード

コンテキストキーワードとは

特定の文脈(Context)でのみ意味を持つキーワードのことです。決められた場所を除いては、識別子として利用することができます。

ただし、あえてコンテキストキーワードを識別子として使うメリットはないので、使うべきではありません。

主なコンテキストキーワード

addinitrecord
andintoremove
aliasjoinselect
ascendingletset
argsmanaged(関数ポインターの呼び出し規約)unmanaged(関数ポインターの呼び出し規約)
asyncnameofunmanaged(ジェネリック型制約)
awaitnintvalue
bynotvar
descendingnotnullwhen(フィルター条件)
dynamicnuintwhere(ジェネリック型制約)
equalsonwhere(クエリ句)
fromorある場合
getorderbyyield
globalpartial(型)
grouppartial(メソッド)

逐語的識別子(verbatim identifier)

逐語的識別子とは

予約語を識別子として使うために、先頭に「@」(アットマーク)をつけた識別子のことです。

主に異なるプログラミング元号との連携を想定した仕組みです。C#で「event」は予約語ですが、そうではない言語もあります。例えばPythonだと「event」は予約語ではありません。このような変数にC#からアクセスする際に、逐語的識別子(@event)を使います。

-.NET MAUI, Blog, プログラミング
-