当前位置: 编程技术>.net/c#/asp.net
学习C#中的静态构造函数与复制构造函数
来源: 互联网 发布时间:2014-08-30
本文导语: 1,静态构造函数 如果类有静态成员,在创建和使用对象之前有时必须初始化这些成员,在这种情况下,可以向类中添加静态构造函数。 来看一个例子。 代码示例: public class Contact { public int ID { get; set; } ...
1,静态构造函数
如果类有静态成员,在创建和使用对象之前有时必须初始化这些成员,在这种情况下,可以向类中添加静态构造函数。
来看一个例子。
代码示例:
public class Contact
{
public int ID { get; set; }
public string Name { get; set; }
public string City { get; set; }
public static int count;
static Contact()
{
count = 0;
Console.WriteLine("Static Constructor");
}
///---Frist Constructor---
public Contact()
{
count++;
Console.WriteLine("First Constructor");
}
}
{
public int ID { get; set; }
public string Name { get; set; }
public string City { get; set; }
public static int count;
static Contact()
{
count = 0;
Console.WriteLine("Static Constructor");
}
///---Frist Constructor---
public Contact()
{
count++;
Console.WriteLine("First Constructor");
}
}
按照下面的方式创建 Contact类的实例:
Contact c1=new Contact();
Contact c2=new Contact();
Console.WriteLine(Contact.count);
Contact c2=new Contact();
Console.WriteLine(Contact.count);
输出:
Static Constructor
First Constructor
First Constructor
可以看出只调用一次静态构造函数,注意静态构造函数的行为:
1、静态构造函数没有访问修饰符或形参;
2、在创建第一个实例或引用任何静态成员之前,自动调用静态构造函数来初始化类;
3、不可以直接调用静态构造函数;
4、用户不能控制何时在程序中执行静态构造函数。
2,复制构造函数
在C#中没有提供复制构造函数,该构造函数用于在创建新对象时将已有对象的值复制到该对象中,相反,必须编写自己的复制构造函数。
在Contact类中的如下复制构造函数将已有对象的特性值(通过otherContact形参)复制到新对象中:
public Contact(Contact otherContact)
{
this.ID = otherContact.ID;
this.Name = otherContact.Name;
this.City = otherContact.City;
}
{
this.ID = otherContact.ID;
this.Name = otherContact.Name;
this.City = otherContact.City;
}
为了使用复制构造函数,首先创建Contact对象,然后,实例化另一个Contact对象并将第一个对象作为形参传入。
就是这些了,希望有助于大家理解C#中的静态构造函数与复制构造函数。脚本学堂,祝大家学习进步。