19

C# でいくつかのコードを書いていたところ、次のように書いていることに気付きました。

return new MyClass(...

returntheと the のnew両方が C# のキーワードであることに気付いたとき。そこで、C# で有効なキーワードの最長シーケンスは何だろうと考えました。私が考えることができるのは次のとおりです。

internal static override void MyFunc(...

internal static override voidすべてのキーワードはどこにありますか。もっと長い一連のキーワードを思いつきますか?

注: 質問にはまったく意味がありません。火にもっと楽しみを注ぎたいと思っています:-)

4

8 に答える 8

47

6 の場合:

new protected internal unsafe virtual decimal Foo() {...}

7の編集:

new protected internal unsafe virtual extern decimal Foo();

ブラケットとブレースを許可すると...

( 「lock」、「new object()」、「as」、および「string」を編集したものは、他のユーザーによって提供されました。コメントを参照してください)

decimal Bar() {
    lock (new object() as string) {
        if (true) {
            checked {
                unsafe {
                    try {
                        do {
                            return default(decimal);
                            unchecked {break;}
                            continue;
                        } while (false);
                    }
                    catch { throw; }
                    finally { }
                }
            }
        }
    }
}
于 2009-03-23T11:21:35.603 に答える
36

私はそれが無限だと思います:

return null as string as string as string as string as string....
于 2009-03-23T11:29:03.183 に答える
3

必要なだけ長くなる別のケースを次に示します。

do do do do do do do do do do do do do do do // ...
while(x) while(x) while(x) while(x) while(x) // ...

コンテキスト キーワードを使用すると、

await await await await await await await // ...
于 2015-03-27T19:36:29.200 に答える
1
internal protected static volatile string foo = "bar";

それは5です。

于 2009-03-23T11:18:54.173 に答える
0

メソッド定義を使用したもう 1 つのバリアント (同僚が見つけたもの):

protected internal override sealed unsafe async void await() { ... }

8 つのキーワードを連続して作成します。コンテキスト キーワードであるという事実を使用するawaitため、メソッド名に再利用できます。

于 2015-11-12T14:27:08.313 に答える
-2

カンニングできますか?

internal protected static volatile StringBuilder @string = 
  new StringBuilder(int.Parse("12"));

先頭に @ を付けると、キーワードまたはその他の予約語を変数名として使用できるという事実を利用すると、StringBuilder の複製を許可する場合は 9 になります。

于 2009-03-23T11:24:59.713 に答える