学习C#中的静态构造函数与复制构造函数

发布时间:2019-12-26编辑:脚本学堂
本文介绍下,C#语言中的静态构造函数,以及复制静态构造函数的方法,有需要的朋友,参考下吧。

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"); 
    } 
    } 

按照下面的方式创建 Contact类的实例:
 

Contact c1=new Contact();
Contact c2=new Contact();
Console.WriteLine(Contact.count);

输出:
 

Static 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; 

 

为了使用复制构造函数,首先创建Contact对象,然后,实例化另一个Contact对象并将第一个对象作为形参传入。

就是这些了,希望有助于大家理解C#中的静态构造函数与复制构造函数。脚本学堂,祝大家学习进步。