为了账号安全,请及时绑定邮箱和手机立即绑定

当类型和变量同名时访问静态成员

当类型和变量同名时访问静态成员

C#
凤凰求蛊 2022-12-24 14:13:51
我如何告诉编译器“Thing.VariableProperty”中的“Thing”是类型而不是实例?就像这样,它表示我的 Thing 实例不包含 VariableProperty 的定义。或者我也将类型名称用作变量名称是错误的吗?  public interface IThing  {    int Variable { get; }  }  public class Thing : IThing  {    public const string VariableProperty = nameof(Variable);    public int Variable => 1;  }  public class MyClass  {    public IThing Thing = new Thing();    public string GiveMeAString()    {      return "Something about " + Thing.VariableProperty;    }  }
查看完整描述

1 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

您可以使用类的完全限定名Test,如果它在命名空间中,或者您可以使用global关键字来引用类:


...

public string GiveMeAString()

{

    return "Something about " + global::Thing.VariableProperty;

    // Or

    // return "Something about " + My.Namespace.Thing.VariableProperty;

}

...

第三种方法是使用using static指令:


using static Thing;


...

public string GiveMeAString()

{

    return "Something about " + VariableProperty;

}

...

但在这种情况下,我建议为Thing类使用另一个名称,例如 egSpecializedThing或将MyClass.Thing字段重命名为 egaThing或myThing。


查看完整回答
反对 回复 2022-12-24
  • 1 回答
  • 0 关注
  • 59 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信