构造函数

本文详细介绍了C#中的构造函数,包括默认构造函数、带参数的构造函数和静态构造函数的特点及使用方法,并通过示例代码展示了不同类型的构造函数如何在类的实例化过程中发挥作用。

第一次学习面向对象就接触了面向对象,说到构造函数,其实就是自定义函数,它是我们自己定义的函数。为创建的对象进行初始化,也就是说,不需要调用这个构造函数,这个构造函数就发生作用了。

本人通过自己的学习和别人的博客:C#之构造函数写下了自己的这篇博客。

举个例子:

//声明一个默认的构造函数
public class Operation   //创建类
{
int i =0;
public Operation()     //创建构造函数,构造函数的名字必须和类的名称一样。
{
i=2;
Console.WriteLine("I am Operation,{0}", j);         //显示输出,输出结构。
}
 static void Main(string[] args)
{
Operation pt = new Operation();
Console.Read();
}
//输出结果为 I am Operation,2

 
 

第二个带有参数的构造函数

//有参的函数和VB带参数的函数是一样的
public class Operation
{
int i=0;

public Operation (int j)
{
i=4;
console.writeLine("I am 有参构造函数{0}",i);
}
static void Main(string[] args)
{
Operation t=new Operation(1);
console.Read();
}
//输出结果为:I am 有参构造函数4

接下来还有静态构造函数,静态构造函数有它的特点:

1.静态构造函数既没有访问修饰符,也没有参数。
2.在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类,也就是无法直接调用静态构造函数,也无法控制什么时候执行静态构造函数。
3.一个类只能有一个静态构造函数,最多只能运行一次。

4.静态构造函数不可以被继承。而普通的构造函数可以被继承。

举个例子:静态构造函数和有参构造函数一起使用时会怎样?

public class Operation
{
static i;
static Operation()
{
i=4;
console.writeLine("I am 静态构造函数:{0}",i);
}
public Operation(int j)
{
i=5;
console.writeLine("I am 有参构造函数:{0}",i);
}
static void Main(string [] args)
{
Operation number=Operation(5);
console.Read();
}
}

//输出结果为:I am 静态构造函数:4
             I am 有参构造函数:5

所以只有实例化,就会运行静态构造函数。那么当我们声明一个无参的构造函数和一个静态的构造函数将会怎样呢。

看下面的代码

//静态构造函数和无参的构造函数代码
public class Operation
{
static i;
static Operation()   //静态构造函数
{
i=4;
console.writeLine("I am 静态构造函数:{0}",i);
}
public Operation()  //无参的构造函数
{
i=5;
console.writeLine("I am 无参构造函数:{0}",i);
}
static void Main(string [] args)
{
Operation number=Operation();
console.Read();
}
}
上面的结果会怎样呢?

总结:感觉自己对构造函数这方面还不是很熟悉,构造函数的作用自己还认识的不深,只知道在初始化这方面有很大的作用。不过自己又觉得初始化的时候完全可以直接赋值,为什么还要有个构造函数呢?希望在以后的学习中多多学习。另外希望大牛们多多回复。


评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值