当前位置:  编程技术>.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"); 
    } 
    } 

按照下面的方式创建 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#中的静态构造函数与复制构造函数。脚本学堂,祝大家学习进步。


    
 
 

您可能感兴趣的文章:

  • c# 类型构造器学习
  • php构造函数和析构函数学习
  • C#类的学习笔记之C#构造函数
  • C#学习笔记之派生类的构造函数
  • 用什么学习函数库?
  • C#学习笔记之抽象类和抽象函数
  • T-SQL常用游标函数实例学习
  • SQL学习笔记七函数 数字,日期,类型转换,空值处理,case
  • 学习C#静态函数及变量的一个精典例子与代码
  • 学习 SQL Server 的三种自定义函数
  • c# Base64编码函数学习笔记
  • SQL学习笔记四 聚合函数、排序方法
  • ORACLE学习笔记-添加更新数据函数篇
  • C# 泛型类与泛型函数的实例学习
  • jQuery的animate函数学习记录
  • php取整函数用法实例学习
  • Java反射学习 getClass()函数应用
  • oracle 合并查询 事务 sql函数小知识学习
  • jQuery学习笔记之jQuery构建函数的7种方法
  • php 字符串替换函数学习
  • sql server 2005 窗口函数(OVER)学习笔记
  • Python函数学习笔记
  • python函数缺省值与引用学习笔记分享
  • 小弟写了一个很简单的动态库实例函数用来学习,但编译通过之后执行可执行文件报错。跪请高手帮忙!!!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C#学习笔记之C#的虚方法
  • C#学习笔记之C#中的类
  • C#学习笔记之C#类的初始化
  • C#.NET学习笔记5 C#中的条件编译
  • C#学习笔记之C#接口的索引器
  • C#学习笔记之C#只读字段
  • C# 全局变量的学习小结
  • c# 常量与字段学习
  • c# MD5加密的代码(简单示例,仅供学习参考)
  • CSS属性参考手册 iis7站长之家
  • C#学习笔记之C#结构
  • 实例学习C#中Ref,Out的用法
  • C#学习笔记之扩展方法
  • C#学习笔记之继承
  • c#进度条ProgressBar学习笔记
  • C# 泛型数组实例学习与总结
  • 实例学习C#中is与As运算符号的用法
  • c#方法重写和隐藏的学习示例
  • 学习C#的密封类与密封方法
  • 将文件夹下所有文件输出到日志文件中 c#递归算法学习示例
  • PHP介绍及学习网站推荐
  • 想深入学习Java应该学习哪些东西
  • 准备学习docker: docker version命令查看版本
  • 新手提问:学习c++同时也想学习unix和linux
  • HTML 学习总结及下一步学习教程推荐
  • 学习c后,学习pb,大家提点建议,谢谢哦
  • OpenStack相关学习资料搜集
  • 有最近开始学习Minix的吗?一起来学习吧
  • juqery的python实现:pyquery学习使用教程
  • 我想问问哪里有AIX下啊!~版本越新越好!~我想拿来学习学习
  • 想找共同学习Linux的新手,一起学习,共同成长


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3