C# では、コロン「:」はどのカテゴリに分類されますか? また、実際には何を意味しますか? 質問する

C# では、コロン「:」はどのカテゴリに分類されますか? また、実際には何を意味しますか? 質問する

Microsoft Developer Web サイトで、: の実際の機能について参照を取得しようとしましたが、キーワードでも演算子でもないようなので見つけることができません。では、C# でのコロンの機能は何でしょうか? また、メソッドに適用されているのを見たことがありますが、これはどのように機能しますか?

ベストアンサー1

コロンは、(コメントの皆さんの助けを借りて私が思いついた)根本的に異なる 12 個の場所で使用されています。

  • クラス定義でクラス名をその基本クラス/インターフェース実装から分離する

    public class Foo : Bar { }
    
  • ジェネリッククラスまたはメソッドにジェネリック型制約を指定する

    public class Foo<T> where T : Bar { }
    
    public void Foo<T>() where T : Bar { }
    
  • 現在のクラスまたは現在のコンストラクタの前にある基底クラスのコンストラクタで別のコンストラクタを呼び出す方法を示します。

    public Foo() : base() { }
    
    public Foo(int bar) : this() { }
    
  • グローバル名前空間の指定(C. ラング指摘しているように、これは名前空間エイリアス修飾子

    global::System.Console
    
  • 属性ターゲットの指定

    [assembly: AssemblyVersion("1.0.0.0")]
    
  • パラメータ名の指定

    Console.WriteLine(value: "Foo");
    
  • 三項式の一部として

    var result = foo ? bar : baz;
    
  • caseまたはgotoラベルの一部として

    switch(foo) { case bar: break; }
    
    goto Bar;
    Foo: return true;
    Bar: return false;
    
  • C# 6以降、補間文字列の書式設定に

    Console.WriteLine($"{DateTime.Now:yyyyMMdd}");
    
  • C# 7以降、タプル要素名では

    var foo = (bar: "a", baz: "b");
    Console.WriteLine(foo.bar);
    

これらすべてのケースでは、コロンは演算子やキーワードとして使用されません ( を除く)。または の::ような単純な構文記号のカテゴリに分類されます。 コロンは、周囲の他の記号の意味をコンパイラーに正確に知らせるために存在します。[]{}

おすすめ記事