C#构造函数 -0028
2021-01-07 12:28
标签:编写 默认构造函数 har ring col single csharp private script 默认构造函数 声明基本构造函数的语法就是声明一个与类同名的方法,但该方法没有返回类型: 如果没有提供任何构造函数,编译器会在后台生成一个默认的构造函数。默认的构造函数,只能把所有的成员字段初始化为标准的默认值。 但是,如果定义了带参数的构造函数,编译器就不会自动提取默认的构造函数。 private或protected构造函数 可以把构造函数定义为private或Protected,这样就限制不相关的类不能访问它。 比如定义private, 在外部代码中,不能使用new关键字实例化MyNumber;但可以编写一个公有静态属性或方法,以实例化该类,比如单例模式。 构造函数中调用其他构造函数 通过this关键字调用另一个构造函数,这种语法称为构造函数初始化器。this关键字调用参数最匹配的那个构造函数。 注意,构造函数初始化器在构造函数的函数体之前执行。如: 会先调用有两个参数的构造函数,然后调用只有一个参数的构造函数。 静态构造函数 C#可以给类定义无参数的静态构造函数,这种构造函数只执行一次。 静态构造函数只能访问类的静态成员,不能访问类的实例成员。 静态构造函数不能带任何参数,一个类也只能有一个静态构造函数。 在C#中,通常在第一次调用类的任何成员之前,执行静态构造函数。 C#构造函数 -0028 标签:编写 默认构造函数 har ring col single csharp private script 原文地址:https://www.cnblogs.com/codesee/p/13154857.htmlpublic class MyClass
{
public MyClass()
{
}
// rest of class definition
}
public class MyNumber
{
private int _number;
private MyNumber(int number) // another overload
{
_number = number;
}
}
public class Singleton
{
private static Singleton _instance;
private int _state;
private Singleton(int state) => _state = state;
public static Singleton Instance => _instance ?? (_instance = new Singleton(42));
}
class Car
{
private string _description;
private uint _nWheels;
public Car(string description, uint nWheels)
{
_description = description;
_nWheels = nWheels;
}
public Car(string description): this(description, 4)
{
}
// ...
}
var myCar = new Car("Proton Persona");
public enum Color
{
White,
Red,
Green,
Blue,
Black
}
public static class UserPreferences
{
public static Color BackColor { get; }
static UserPreferences()
{
DateTime now = DateTime.Now;
if (now.DayOfWeek == DayOfWeek.Saturday || now.DayOfWeek == DayOfWeek.Sunday)
{
BackColor = Color.Green;
}
else
{
BackColor = Color.Red;
}
}
}