我对C#的OOP有个问题。
它说“成员”不能用实例引用来访问。用类型名来限定它。“
错误:单击此处
供参考的代码:
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.");
}
}
我查过这个网站:
但还是不起作用。
发布于 2022-05-15 06:41:31
把静态这个词移到任何地方。除了static void Main
,它是启动程序所必需的(但如果您使用的是非常现代的C#,它实际上可能不再可见)在学习OOP时根本不使用这个词static
;它从本质上“关闭”了“面向对象的编程”中面向对象的部分。
它有它的用途,你会欣赏随着你的经验增长,但现在,它将做的只是迷惑你,使事情更难解释;我们正试图让你思考一下,为一辆汽车(这就是这类汽车)绘制蓝图,然后搅动多个不同的汽车实例(使用new
这个词制造一辆特斯拉汽车,另一辆汽车作为福特汽车,并意识到计算机内存中有两种不同的汽车数据)-使用static
意味着只有一种东西,这将真正削弱你在使用倍数的有用性方面的能力。
不要使用它--如果你发现自己把它粘在“让东西工作”中,那么它就意味着在其他地方有问题--来寻求我们的帮助,让它在没有static
的情况下工作,不管“它”是什么。
发布于 2022-05-15 07:49:34
这应该是可行的:
public static void Drive()
{
Console.WriteLine($"Your car - {Brand} {Model} made in {Year} can be driven now.");
}
在Car类中,您不应该使用类名来访问属性,即使是静态属性。
https://stackoverflow.com/questions/72246005
复制相似问题