gpt4 book ai didi

c# - 我可以从 C# 中另一个类的构造函数调用构造函数吗?

转载 作者:太空宇宙 更新时间:2023-11-03 17:23:51 25 4
gpt4 key购买 nike

我是 C# 的新手,想知道在同一个命名空间中有两个类,我是否可以在另一个类的构造函数中调用一个类的构造函数?

例如:

class Company
{
// COMPANY DETAILS
Person owner;
string name, website;

Company()
{
this.owner = new Person();
}
}

以上返回“Person.Person()”由于其保护级别而无法访问。 Person 类如下所示:

class Person
{
// PERSONAL INFO
private string name, surname;

// DEFAULT CONSTRUCTOR
Person()
{
this.name = "";
this.surname = "";
}
}

这里有什么我遗漏的吗?构造函数不应该可以从同一命名空间中的任何地方访问吗?

最佳答案

您将构造函数定义为私有(private),因此您无法访问它。

编译器甚至给你一个 hint :

error CS0122: 'Person.Person()' is inaccessible due to its protection level

C# 6.0 specification access modifiers 的状态:

When a class_member_declaration does not include any access modifiers, private is assumed.

class_member_declaration指定为

class_member_declaration
: ...
| constructor_declaration
| ...
;

只有 default constructors当类定义为抽象时,默认情况下是公开的。

因此改变

Person() { }

public Person() { }

关于c# - 我可以从 C# 中另一个类的构造函数调用构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49315415/

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