【问题标题】:Why can't I use 'this.' in C# to access my class constant?为什么我不能使用“这个”。在 C# 中访问我的类常量?
【发布时间】:2011-04-05 14:31:14
【问题描述】:

在 C# .NET 中,为什么我不能使用 'this' 关键字访问类中的常量?

例子:

public class MyTest
{
    public const string HI = "Hello";

    public void TestMethod()
    {
        string filler;
        filler = this.HI; //Won't work.
        filler = HI       //Works.
    }
}

【问题讨论】:

    标签: c# .net constants


    【解决方案1】:

    因为 class 常量不是实例成员;他们是班级成员。 this 关键字指的是一个对象,而不是类,所以你不能用它来引用类常量。

    无论您是在类的静态方法还是实例方法中访问常量,这都适用。

    【讨论】:

    • 今天早上有人很快。哈哈。
    • @Justin Niessner:你一直在跟踪我吗?!
    • 不...但是当我看到已经发布了某些内容时,我正在自己输入答案。
    【解决方案2】:

    常量隐含为static

    【讨论】:

      【解决方案3】:

      因为常量是类的一部分,所以需要使用类名:

      filler = MyTest.HI;
      

      【讨论】:

      • 在课堂上你不需要这样做。
      • 真的,你不知道。我以为他想明确说明常量的来源。
      • @DanielRose 此外,如果 const 字段 HI 被方法/构造函数参数或也称为的局部变量隐藏,则该语法可能很有用HI。 IE。与this.Hi2 对非静态成员Hi2 有用的情况相同。
      【解决方案4】:

      一个 const 项是隐式静态的。这意味着它属于类而不是类的成员。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-28
        • 2019-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多