成员 '<成员名称>'不能通过实例引用访问
我正在使用 C#,但遇到了这个问题:
I am getting into C# and I am having this issue:
namespace MyDataLayer
{
namespace Section1
{
public class MyClass
{
public class MyItem
{
public static string Property1{ get; set; }
}
public static MyItem GetItem()
{
MyItem theItem = new MyItem();
theItem.Property1 = "MyValue";
return theItem;
}
}
}
}
我在 UserControl 上有这个代码:
I have this code on a UserControl:
using MyDataLayer.Section1;
public class MyClass
{
protected void MyMethod
{
MyClass.MyItem oItem = new MyClass.MyItem();
oItem = MyClass.GetItem();
someLiteral.Text = oItem.Property1;
}
}
一切正常,除非我去访问 Property1
.智能感知只给我Equals
、GetHashCode
、GetType
和 ToString
"作为选项.当我将鼠标悬停在 oItem.Property1
上时,Visual Studio 会给出以下解释:
Everything works fine, except when I go to access Property1
. The intellisense only gives me "Equals
, GetHashCode
, GetType
, and ToString
" as options. When I mouse over the oItem.Property1
, Visual Studio gives me this explanation:
Member
MyDataLayer.Section1.MyClass.MyItem.Property1.get不能用实例引用访问,用类型名来代替
Member
MyDataLayer.Section1.MyClass.MyItem.Property1.getcannot be accessed with an instance reference, qualify it with a type name instead
我不确定这意味着什么,我进行了一些谷歌搜索,但无法弄清楚.
I am unsure of what this means, I did some googling but wasn't able to figure it out.
在 C# 中,与 VB.NET 和 Java 不同,您不能使用实例语法访问 static
成员.你应该这样做:
In C#, unlike VB.NET and Java, you can't access static
members with instance syntax. You should do:
MyClass.MyItem.Property1
引用该属性或从 Property1
中删除 static
修饰符(这可能是您想要做的).有关static代码> 是,请参阅我的其他答案
.
to refer to that property or remove the static
modifier from Property1
(which is what you probably want to do). For a conceptual idea about what static
is, see my other answer.