2016-04-03 95 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

谢谢,但我知道解释,但“:”令我困惑。 –