我一直试图在微软开发者网站上获取关于以下功能的参考:真的是但我找不到它,因为它似乎既不是关键字也不是运算符,所以C#中冒号的功能是什么?另外我已经看到它被应用于一个方法该如何运作?
p.s*_*w.g 62
冒号在十几个根本不同的地方使用(我可以想到,在评论中的每个人的帮助下):
在类定义中将类名与其基类/接口实现分开
public class Foo : Bar { }
Run Code Online (Sandbox Code Playgroud)在泛型类或方法上指定泛型类型约束
public class Foo<T> where T : Bar { }
public void Foo<T>() where T : Bar { }
Run Code Online (Sandbox Code Playgroud)指示如何在当前类或当前构造函数之前调用基类的构造函数上调用另一个构造函数
public Foo() : base() { }
public Foo(int bar) : this() { }
Run Code Online (Sandbox Code Playgroud)指定全局命名空间(如C. Lang所指出的,这是命名空间别名限定符)
global::System.Console
Run Code Online (Sandbox Code Playgroud)指定属性目标
[assembly: AssemblyVersion("1.0.0.0")]
Run Code Online (Sandbox Code Playgroud)指定参数名称
Console.WriteLine(value: "Foo");
Run Code Online (Sandbox Code Playgroud)作为三元表达的一部分
var result = foo ? bar : baz;
Run Code Online (Sandbox Code Playgroud)作为的一部分case或goto标签
switch(foo) { case bar: break; }
goto Bar;
Foo: return true;
Bar: return false;
Run Code Online (Sandbox Code Playgroud)从C#6开始,用于格式化插值字符串
Console.WriteLine($"{DateTime.Now:yyyyMMdd}");
Run Code Online (Sandbox Code Playgroud)从C#7开始,在元组名称中
var foo = (bar: "a", baz: "b");
Console.WriteLine(foo.bar);
Run Code Online (Sandbox Code Playgroud)在所有这些情况下,冒号不用作运算符或关键字(除了::).它属于简单的句法符号类,如[]或{}.它们只是让编译器确切地知道它们周围的其他符号是什么意思.