不能使用实例引用访问成员‘<Method>’

不能使用实例引用访问成员‘<Method>’

我要进入C#,我有这样的问题:

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上有以下代码:

using MyDataLayer.Section1;public class MyClass{
    protected void MyMethod
    {
        MyClass.MyItem oItem = new MyClass.MyItem();
        oItem = MyClass.GetItem();
        someLiteral.Text = oItem.Property1;
    }}

一切正常,除了我去访问Property1..知音只给我“EqualsGetHashCodeGetType,和ToString“作为选项。当我在oItem.Property1,VisualStudio给了我以下解释:

MemberMyDataLayer.Section1.MyClass.MyItem.Property1.getcannot be accessed with an instance reference, qualify it with a type name instead

我不知道这意味着什么,我做了一些谷歌,但没能弄清楚。


绝地无双
浏览 435回答 3
3回答

12345678_0001

我也有过同样的问题-尽管几年后,有些人可能会发现一些建议很有帮助:不要无缘无故地使用“静态”!从运行时和编译时语义(行为)和语法两方面理解“静态”意味着什么。静态实体将在一段时间前自动构造。它的第一次使用。静态实体有一个分配的存储位置,即由所有访问该实体的人共享。静态实体只能通过其类型名称访问,而不能通过其类型名称访问。通过这种类型的实例。与实例方法一样,静态方法没有隐含的“this”参数。(因此,静态方法的执行次数较少。开销-使用它们的原因之一。)使用静态实体时要考虑线程安全。有关MSDN中静态的一些详细信息:C#中的静态类C#中的静态构造函数
打开App,查看更多内容
随时随地看视频慕课网APP