首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >成员不能通过实例引用访问。错误建议在C#中用一个类型名来限定它。错误

成员不能通过实例引用访问。错误建议在C#中用一个类型名来限定它。错误
EN

Stack Overflow用户
提问于 2022-05-15 06:28:15
回答 2查看 27关注 0票数 0

我对C#的OOP有个问题。

它说“成员”不能用实例引用来访问。用类型名来限定它。“

错误:单击此处

供参考的代码:

代码语言:javascript
运行
复制
class Car
    {
        
        public static String Model;
        public static int Year;
        public static String Brand;

        public Car(string Name, string Model, int Year, String Brand)
        {
            
            this.Model = Model;
            this.Year = Year;
            this.Brand = Brand;
        }

        public static void Drive()
        {
            Console.WriteLine($"Your car - {Car.Brand} {Car.Model} made in {Car.Year} can be driven now.");
        }
    }

我查过这个网站:

成员不能使用实例引用访问;请将其限定为类型名称。

但还是不起作用。

EN

回答 2

Stack Overflow用户

发布于 2022-05-15 06:41:31

把静态这个词移到任何地方。除了static void Main,它是启动程序所必需的(但如果您使用的是非常现代的C#,它实际上可能不再可见)在学习OOP时根本不使用这个词static;它从本质上“关闭”了“面向对象的编程”中面向对象的部分。

它有它的用途,你会欣赏随着你的经验增长,但现在,它将做的只是迷惑你,使事情更难解释;我们正试图让你思考一下,为一辆汽车(这就是这类汽车)绘制蓝图,然后搅动多个不同的汽车实例(使用new这个词制造一辆特斯拉汽车,另一辆汽车作为福特汽车,并意识到计算机内存中有两种不同的汽车数据)-使用static意味着只有一种东西,这将真正削弱你在使用倍数的有用性方面的能力。

不要使用它--如果你发现自己把它粘在“让东西工作”中,那么它就意味着在其他地方有问题--来寻求我们的帮助,让它在没有static的情况下工作,不管“它”是什么。

票数 2
EN

Stack Overflow用户

发布于 2022-05-15 07:49:34

这应该是可行的:

代码语言:javascript
运行
复制
public static void Drive()
        {
            Console.WriteLine($"Your car - {Brand} {Model} made in {Year} can be driven now.");
        }

在Car类中,您不应该使用类名来访问属性,即使是静态属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72246005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档