繁体   English   中英

使用(逻辑):运算符 C#

[英]Use(logic) of : operator C#

任何人都可以解释“:”在代码中代表什么。 我理解代码,但不知道这个“:”运算符背后的逻辑/条件。

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

冒号在七个根本不同的地方使用(我能想到,在评论中每个人的帮助下):

  • 在类定义或通用约束定义中将类名与其基类/接口实现分开。

     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. Lang指出的,这是命名空间别名限定符

     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;

在所有这些情况下,冒号不用作运算符或关键字(除了:: )。 它属于简单句法符号的范畴,如[]{} 它们只是为了让编译器确切地知道它们周围的其他符号的含义。

在您的情况下,您有一个具有多个构造函数的类,因此

class Constructor()

有一个默认(无参数)构造函数和一个以 2 个字符串作为参数的构造函数。

如果有人调用默认构造函数,则该类将在内部调用带有 2 个重载它的字符串的构造函数。

那是该代码的解释

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM