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

天索普

我是 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 = "";
    }
}

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

维鲁斯特林蒂

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

编译器甚至会给你一个提示

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

访问修饰符C# 6.0 规范状态

class_member_declaration不包含任何访问修饰符时,假定为私有

class_member_declaration被指定为

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

只有默认的构造函数默认为公用类时没有定义为抽象的。

因此改变

Person() { }

public Person() { }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以在C ++中从另一个构造函数调用构造函数(构造函数链接)吗?

可以在类的构造函数内部使用“ new”来调用Java中的另一个构造函数吗?

C ++-从另一个类构造函数调用一个类构造函数

是否可以在另一个类中调用一个类的构造函数?

稍后在 C++ 中的另一个类方法中调用类构造函数

Cgo可以调用在另一个目录中声明的C函数吗?

一个类的构造函数可以在 Python 中返回另一个类吗?

我应该导入在另一个类构造函数中注入的类吗?

什么时候在c ++中调用了复制构造函数,当我将一个对象分配给另一个对象时是否不调用它?

为什么从另一个构造函数内部调用的C ++构造函数不会修改类变量?

我正在尝试创建一个使用C ++中的参数包构造函数的异常类

C ++:从另一个构造函数隐式调用构造函数

我们可以在另一个类的构造函数的帮助下初始化对象吗?

我如何从C ++中的静态线程入口点函数调用另一个函数?

从C ++ 17中的另一个构造函数调用具有不同参数类型的构造函数

c#是否可以在创建静态对象的同时将其传递给另一个对象的构造函数或方法

我可以在构造函数中创建一个局部函数并调用它吗

在构造函数C ++中调用另一个对象的方法

我可以在 C# 中约束构造函数参数吗

C ++中带有另一个模板类作为参数的构造函数

ANSI C-一个函数可以返回另一个函数吗?

是否可以编写一个抽象类,以便构造函数选择适当的子类在C ++中实例化?

具有不可见构造函数的公共类可以由另一个包中的类扩展吗?

我如何从C ++中的另一个函数循环一个函数

C ++试图将类传递给另一个类的构造函数

我可以在多个可以在Octave中调用的C ++函数中描述一个共享变量吗?

是否可以将构造函数用作TypeScript中另一个函数的参数类型?

另一个元组构造函数中的C#元组解构函数

一个类可以没有构造函数吗?