Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# base关键字的用途是什么?但是默认情况下会调用父类构造函数。?_C# - Fatal编程技术网

C# base关键字的用途是什么?但是默认情况下会调用父类构造函数。?

C# base关键字的用途是什么?但是默认情况下会调用父类构造函数。?,c#,C#,我知道,如果基类成员在派生类中被重写或隐藏,则使用base关键字调用基类成员。我很清楚,如果我们需要通过在构造函数中链接将一些参数传递给基类构造函数 在下面的例子中。我没有使用base关键字,但是它被调用了。那么重点是什么呢 class Person { public long Id { get; set; } public string Name { get; set; } public static string Company { get; set; }

我知道,如果基类成员在派生类中被重写或隐藏,则使用base关键字调用基类成员。我很清楚,如果我们需要通过在构造函数中链接将一些参数传递给基类构造函数

在下面的例子中。我没有使用base关键字,但是它被调用了。那么重点是什么呢

class Person
{
    public long Id { get; set; }
    public string Name { get; set; }
    public static string Company { get; set; }

    static Person()
    {
        Company = "Company";
    }

    public Person()

    {
        Id = 0;
        Name = "Name";
    }

    public Person(long id)
    {
        Id = id;
        Name = this.Name;
    }

    public override string ToString()
    {
        return string.Format("Id:{0}\tName:{1}\tCompany:{2}", Id, Name,Company);
    }
}

class Employee : Person
{
    public long EmpId { get; set; }
    public Employee()
    {

    }
}

class Manager : Employee
{
    public string WorkingWith { get; set; }

    public Manager()
    {

    }
}

class Program
{
    static void Main(string[] args)
    {
        Manager manager = new Manager();

        Console.ReadKey();

    }
}

从派生类调用参数化构造函数是一个额外的选项吗?

是的,这正是在派生类构造函数中使用
base
的原因:在基类中调用参数化构造函数:

: base(10, "test")

您可以通过
:base()
调用无参数基类构造函数,但正如您所说,这是毫无意义的,因为它无论如何都会被调用。

是的,这正是您在派生类构造函数中使用
base
的原因:在基类中调用参数化构造函数:

: base(10, "test")

您可以通过
:base()
调用无参数基类构造函数,但正如您所说,这是毫无意义的,因为它无论如何都会被调用。

是的,这正是您在派生类构造函数中使用
base
的原因:在基类中调用参数化构造函数:

: base(10, "test")

您可以通过
:base()
调用无参数基类构造函数,但正如您所说,这是毫无意义的,因为它无论如何都会被调用。

是的,这正是您在派生类构造函数中使用
base
的原因:在基类中调用参数化构造函数:

: base(10, "test")

您可以通过
:base()
调用无参数基类构造函数,但正如您所说的,这是毫无意义的,因为它无论如何都会被调用。

我不知道您在寻找什么答案。是的,如果默认的不是你想要的,它可以用来选择调用哪个基类构造函数。我不知道你在寻找什么答案。是的,如果默认的不是你想要的,它可以用来选择调用哪个基类构造函数。我不知道你在寻找什么答案。是的,如果默认的不是你想要的,它可以用来选择调用哪个基类构造函数。我不知道你在寻找什么答案。是的,如果默认的基类构造函数不是您想要的,那么它可以用来选择调用哪个基类构造函数。感谢澄清我。这导致了一个新的讨论:调用
base()是好还是坏
如果仍然隐式调用它。感谢澄清我。这将导致一个新的讨论,无论调用
base()是好的还是坏的样式。
如果仍然隐式调用它。感谢澄清我。这将导致一个新的讨论,无论调用
base()是好的还是坏的样式
如果它是隐式调用的。谢谢澄清我。这导致了一个新的讨论,如果它是隐式调用的,调用
base()
是好还是坏。