C#构造函数

2019-10-16  本文已影响0人  86a262e62b0b

参考:
https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/constructors

一.实例构造函数

使用 new 表达式创建类的对象时,实例构造函数可用于创建和初始化任意实例成员变量。

1. 类

2. struct

int i = new int();  
Console.WriteLine(i); 

文档是这么说的,但实际不对:
但是,下面的代码会导致编译器错误,因为它不使用 new,而且尝试使用尚未初始化的对象:

int i;  
Console.WriteLine(i);  

或者,可将基于 structs 的对象(包括所有内置数值类型)初始化或赋值后使用,

二. 私有构造函数

如果类具有一个或多个私有构造函数而没有公共构造函数,则其他类(除嵌套类外)无法创建该类的实例。

注意:请注意,如果不对构造函数使用访问修饰符,则在默认情况下它仍为私有构造函数(只写名字)。 但是,通常会显式地使用 private 修饰符来清楚地表明该类不能被实例化。

三. 静态构造函数

特点:

详细请参考:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/static-constructors

四. base和this关键字

//1.隐式
public Manager(int initialData)
{
    //Add further instructions here.
}

//2.显示
public Manager(int initialData) : base()
{
    //Add further instructions here.
}

如果基类没有提供无参数构造函数,派生类必须使用 base 显式调用基类构造函数。

public Employee(int weeklySalary, int numberOfWeeks) : this(weeklySalary * numberOfWeeks)
{
}
上一篇 下一篇

猜你喜欢

热点阅读