gpt4 book ai didi

c# - 为什么我不能在拥有私有(private)构造函数时调用默认构造函数?

转载 作者:行者123 更新时间:2023-11-30 18:56:28 25 4
gpt4 key购买 nike

我有以下带有私有(private)重载构造函数的类

 class Car
{
string _Make;
string _Model;

Car(string make, string model)
{
_Make = make;
_Model = model;
}
}

然后我尝试调用上面类的默认构造函数

class Daytona
{
public int Foo()
{
Car c = new Car(); //COMPILATION ERROR

return 0;
}
}

注意这两个类在同一个命名空间中!

我无法使用其默认构造函数创建 Car 的实例。但是无论我是否创建默认构造函数,我都应该能够访问默认构造函数。但我为什么会发生这个错误?

好的伙计们,VS 2010 发生了一些不好的事情,当我重新启动我的机器时 VS 2010 编译了上面的代码。这样问题就解决了。

它是我的编译器,当我重新编译它时,再次出现错误,行 "Car c = new Car();" error was MyNamespace.Car.Car(string, string ) 由于其保护级别而无法访问

但是我想把这个top拖到一个新的区域,为什么有人要创建一个私有(private)构造函数? (以上代码仅供测试!)

最佳答案

public class Car
{
string _Make;
string _Model;

public Car(){}

public Car(string make, string model)
{
_Make = make;
_Model = model;
}
}

改为public,但是如果你想不带参数调用它,你还需要添加一个无参数构造函数。如果您定义另一个构造函数(带参数),则不再隐式定义默认构造函数

关于c# - 为什么我不能在拥有私有(private)构造函数时调用默认构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26878032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com