如何告诉编译器“ 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;
}
}
答案 0 :(得分:2)
如果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
类使用另一个名称,例如SpecializedThing
或将MyClass.Thing
字段重命名为例如。 aThing
或myThing
。