gpt4 book ai didi

c# - 在 C# 中,冒号 ": "属于什么类别,它的真正含义是什么?

转载 作者:IT王子 更新时间:2023-10-29 04:23:01 25 4
gpt4 key购买 nike

我一直试图在 Microsoft Developer 网站上获得关于 : 的功能的引用,但我找不到它,因为它似乎既不是关键字也不是运算符,那么冒号的功能是什么C#?我还看到它被应用于一种方法,它是如何起作用的?

最佳答案

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

  • 在类定义中将类名与其基类/接口(interface)实现分开

    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 指出的,这是 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;
  • 自 C# 6 起,用于格式化内插字符串

    Console.WriteLine($"{DateTime.Now:yyyyMMdd}");
  • 自 C# 7 起,在元组元素名称中

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

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

关于c# - 在 C# 中,冒号 ": "属于什么类别,它的真正含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17034475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com