2016-04-03 107 views
-2

任何人都可以解釋代碼中「:」代表什麼。我瞭解代碼,但不知道這個「:」運算符背後的邏輯/條件。使用(邏輯):運算符C#

public Constructor() : this("No names", string.Empty) 
{ 
} 

回答

2

冒號七種完全不同的地方使用(即我能想到的,每個人都在評論的幫助下):

  • 從它分離類名稱的基類/接口類定義或通用約束定義中的實現。

    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.郎指出,這是namespace alias qualifier

    global::System.Console 
    
  • 指定屬性的目標

    [assembly: AssemblyVersion("1.0.0.0")] 
    
  • 指定參數名稱

    Console.WriteLine(value: "Foo"); 
    
  • 作爲三元表達

    var result = foo ? bar : baz; 
    
  • 的一部分作爲casegoto標籤的一部分。

    switch(foo) { case bar: break; } 
    
    goto Bar; 
    Foo: return true; 
    Bar: return false; 
    

在所有這些情況下,結腸不被用作操作員或關鍵字(與::除外)。它屬於簡單句法符號的範疇,如[]{}。他們只是爲了讓編譯器確切地知道他們周圍的其他符號是什麼意思。

2

你的情況,你有多個構造一類,所以 的

class Constructor()

默認(無參數)構造函數,構造機智2個字符串作爲參數。

如果有人調用默認構造函數,那麼該類將在內部調用帶有2個字符串的構造函數來重載它。

這是該代碼的說明

+0

謝謝,但我知道解釋,但「:」令我困惑。 –