【问题标题】:Static member instance reference issue [duplicate]静态成员实例引用问题[重复]
【发布时间】:2014-01-09 11:52:56
【问题描述】:

我在 Analytics 类中有以下静态方法:

 public static void buttonHit(string eventName, string eventAction, string description)
{
    gua.sendEventHit(eventName,eventAction,description,1);
}

在第二堂课中,我试图填写如下:

Analytics analytics;
void buttonEventAnalytic()
{   
   analytics.buttonHit(event_NameString, event_ActionString, event_Label);  
}

但是,当我这样做时,我收到以下错误:

错误 CS0176:静态成员 `Analytics.buttonHit(string, string, string)' 无法通过实例引用访问,请改为使用类型名称对其进行限定

有人可以告诉我如何克服这个错误吗?

【问题讨论】:

    标签: c# static-methods


    【解决方案1】:

    使用class 名称而不是实例。静态成员应该使用类名访问。

    Analytics.buttonHit(event_NameString, event_ActionString, event_Label);  
    

    静态函数成员(方法、属性、事件、运算符或 constructor) 不对特定实例进行操作,它是一个 在这样的函数成员中引用 this 的编译时错误,MSDN

    【讨论】:

      【解决方案2】:

      直接使用

      Analytics.buttonHit(event_NameString, event_ActionString, event_Label);  
      

      因为静态成员与对象无关,它们只与类关联

      【讨论】:

      • 那是 C++ 符号。在 C# 中使用 . 而不是 ::
      • 感谢指正
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-23
      • 1970-01-01
      • 2021-08-19
      • 2021-11-26
      • 2023-03-10
      • 2018-09-03
      相关资源
      最近更新 更多