博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#:构造函数
阅读量:4960 次
发布时间:2019-06-12

本文共 1444 字,大约阅读时间需要 4 分钟。

与包含的类同名的方法,但该方法没有返回类型:

public class MyClass

{

public MyClass()

{

}

//Rest of class definition

}

如果没有提供任何构造函数,编译器会在后台创建一个默认的构造函数。它只能把所有的成员字段初始化为标准的默认值(例如, 引用类型为空引用,数字数据类型为0, bool为false)

如果提供了带参数的构造函数编译器就不会自动提供默认的构造函数,只有在没有定义任何构造函数时,编译器才会 自动提供默认构造函数。

 

1. 静态构造函数

这种构造函数只执行一次,而前面的构造函数是实例构造函数,只要创建类的对象,它都会执行。

class MyClass

{

static MyClass()

{

// initialization code

}

// Rest of class definition

}

编写静态构造函数的一个原因是,类有一些静态字段或属性,需要在第一次使用类之前,从外部源中初始化这些静态字段和属性。

  • 静态构造函数不能带任何参数,一个类只能有一个静态构造函数。
  • 静态构造函数没有访问修饰符
  • 静态构造函数只能访问类的静态成员,不能访问实例成员。
  • 无参数的构造函数尽管参数列表相同,但可以在类中与静态构造函数共存。因为静态构造函数是在加载类时执行,而实例构造函数是在创建实例时执行。

 

假定有 一个用户设置——BackColor,表示要在应用程序中使用的背景颜色。

namespace ConsoleApplication2

{

classProgram

{

public static readonly Color BackColor;

static Program()

{

DateTime now = DateTime.Now;

if (now.DayOfWeek == DayOfWeek.Saturday || now.DayOfWeek == DayOfWeek.Sunday)

{

BackColor= Color.Green;

}

else

{

BackColor= Color.Red;

}

}

private Program()

{ }

这段代码说明了颜色设置如何存储在静态变量中,该静态变量在静态构造函数中进行初始化。把这个字段声明为只读类型,表示其值只能在构造函数中设置。

 

2. 从其他构造函数中调用构造函数

namespace ConsoleApplication3

{

classCar

{

privatestring description;

privateuint nWheels;

public Car(string description, uint nWheels)

{

this.description = description;

this.nWheels = nWheels;

}

// 构造函数初始化器

public Car(string description)

: this(description, 4)

{ }

staticvoid Main(string[] args)

{

}

}

}

 

C#构造函数初始化符也可以包含对直接基类的构造函数的调用(使用相同的语法,但应用base关键字代替this)

转载于:https://www.cnblogs.com/LilianChen/archive/2012/11/05/2756064.html

你可能感兴趣的文章
spring Jdbc自己主动获取主键。
查看>>
百度地图静态库的合成
查看>>
Android Fragment使用
查看>>
Codeforces Round #267 (Div. 2)D(DFS+单词hash+简单DP)
查看>>
Oracle FGA审计记录的清理步骤
查看>>
java中接口的定义与实现
查看>>
论坛上的题目--类似于行列转换的,给出我的方法。
查看>>
python--协程之特别篇
查看>>
C++著名程序库的比较和学习经验(STL.Boost.GUI.XML.网络等等)
查看>>
文件链接的创建与删除
查看>>
桥接模式(Bridge)
查看>>
linux用户权限 -> 系统特殊权限
查看>>
WPF 打印
查看>>
Problem A: 分数类的输出
查看>>
自适应网页设计的方法(转)
查看>>
C++内存管理(转)
查看>>
jquery输入文字,实时字数提示
查看>>
毕业设计
查看>>
二、Redis KEY相关命令
查看>>
Win7上装双系统,完美体验Win8(傻瓜操作,简单易懂,亲测成功)
查看>>