2013-03-26 18 views
8

C#で予約されたキーワードのリストで "by"を見つけることはできませんが、Resharper Visual Studioプラグインはそれを考慮しているようです - コードを生成するたびに@エスケープを前に付けます(例:リファクタリングコマンド)は予約済みのキーワードですか?

答えて

14

byはつまり、それだけでgroup clause内の特定には、唯一のLINQ Query Expressions内の特定の位置でのキーワードだ、Query Keywordです。

によってコンテキストキーワードは、返されたアイテムをグループ化する方法を指定するには、クエリ式でグループ句で使用されています。

+0

[C#Keywords(MSDN)]ページ(http://msdn.microsoft.com/en-us/library/x53a06bb.aspx)で「by」が_contextualキーワードとして記載されていないのはなぜですか? 'select'、' group'、 'orderby'、' descending'という単語はそのリストにありますか? –

+0

MSDNはすべてのキーワードをカテゴリに分類します([Statement Keywords](http://msdn.microsoft.com/en-us/library/xt4z8b0f.aspx)、[Namespace Keywords](http://msdn.microsoft.com/en/ -us/library/cxtk6h5e.aspx)など)。 'by' *がコンテキストキーワードであるにもかかわらず、MSDNの人々は、[Query Keywords](http://msdn.microsoft.com/en-us/library/bb310804.aspx)をすべてを[Contextual Keywords](http://msdn.microsoft.com/en-us/library/the35c6y.aspx)は、ドキュメントの使いやすさを向上させます。キーワードの概要ページにすべてのクエリキーワードが表示されない理由がわかりません。 – dtb

+0

C#言語仕様には次のものがあります。_Query式にはいくつかの「コンテキストキーワード」、つまり特定のコンテキストで特別な意味を持つ識別子が含まれています。具体的には、「from」、「where」、「join」、「on」、「equals」、「into」、「let」、「orderby」、「ascending」、「descending」、「select」、「group」と 'によって'。これらの識別子をキーワードまたは単純な名前として混在させることによって引き起こされるクエリ式のあいまいさを避けるために、これらの識別子はクエリ式内のどこにでも存在するときにキーワードとみなされます。 [...] _ –

5

byは、LINQクエリ構文内で使用されます。これはquery syntax context内にのみ予約されています。例えば

:あなたはそれの前に@記号を使用して、任意のC#reserved言葉を逃れることができる

  (from x in Collection 
     group x by n); 

4

byは、LINQを使用するためのquery wordで予約語ではありません。