C#构造函数的特性及使用详解

开发 后端
C#构造函数的特性有哪些呢?C#构造函数是编程人员面对最多的,那么C#构造函数的特性及使用有什么需要学习的呢?本文详解了C#构造函数的特性及使用情况。

C#构造函数的特性及使用情况是如何的呢?下面我们分两个部分来向你讲解:

C#构造函数的特性一、

什么是C#构造函数?Construct,Function

C#构造函数是一种特殊的成员函数,它主要用于为对象分配存储空间,对数据成员进行初始化.

C#构造函数具有一些特殊的性质:

(1)C#构造函数的名字必须与类同名;

(2)C#构造函数没有返回类型,它可以带参数,也可以不带参数;

(3)声明类对象时,系统自动调用构造函数,构造函数不能被显式调用;

(4)C#构造函数可以重载,从而提供初始化类对象的不同方法;

(5)若在声明时未定义构造函数,系统会自动生成默认的构造函数,此时构造函数的函数体为空.

(6)静态构造函数,用static修饰,用于初始化静态变量,一个类只允许有一个构造函数,在类实例化时加载,这时修饰符public、private失去作用.

(7)可以使用public、protected、private修饰符。.

(8)引用父类构造时用():base()方法,引用自身重载的构造使用():this(int para).

(7)可以使用public、protected、private修饰符。

C#构造函数的特性之C#构造函数使用时注意事项:

1、定义了一个带参构造函数后,最好定义一个无参构造函数,这样可以避免子类调用时出错

2、调用基类构造函数:base() 或 :base(参数列表)  调用本类其它构造函数 :this() 或 :this(参数列表)

3、只有在用base显示调用父类的构造函数时,程序才不会默认的调用不带参数的构造函数。

C#构造函数的特性二、

C#构造函数的结构层次关系或者说执行顺序是怎样的?Layer,Transfer,Execute

从基类开始构造对象。

  1. public class MyBaseClass  
  2. {  
  3. public MyBaseClass()  
  4. {  
  5. Console.WriteLine("In MyBaseClass()");  
  6. }  
  7. public MyBaseClass(int i)  
  8. {  
  9. Console.WriteLine("In MyBaseClass(int i)");  
  10. }  
  11. }  
  12. public class MyDerivedClass : MyBaseClass  
  13. {  
  14. public MyDerivedClass()  
  15. {  
  16. Console.WriteLine("In MyDerivedClass()");  
  17. }  
  18. public MyDerivedClass(int i)  
  19. {  
  20. Console.WriteLine("In MyDerivedClass(int i)");  
  21. }  
  22. //public MyDerivedClass(int i, int j)  
  23. //{  
  24. //Console.WriteLine("In MyDerivedClass(int i,int j)");  
  25. //}  
  26. public MyDerivedClass(int i, int j)  
  27. base(i)  
  28. {  
  29. Console.WriteLine("In MyDerivedClass(int i,int j):base(i)");  
  30. }  
  31. }  
  32. class Program  
  33. {  
  34. static void Main(string[] args)  
  35. {  
  36. //Event1  
  37. MyDerivedClass myObj1 = new MyDerivedClass();  
  38. Console.WriteLine();  
  39. //Event2  
  40. MyDerivedClass myObj2 = new MyDerivedClass(4);  
  41. Console.WriteLine();  
  42. //Event3  
  43. MyDerivedClass myObj3 = new MyDerivedClass(4,8);  
  44. Console.WriteLine();  
  45. Console.ReadKey();  
  46. }  

C#构造函数执行程序输出:

  1. In MyBaseClass()  
  2.  
  3. In MyDerivedClass()  
  4.  
  5.  
  6. In MyBaseClass()  
  7.  
  8. In MyDerivedClass(int i)  
  9.  
  10.  
  11. In MyBaseClass(int i)  
  12.  
  13. In MyDerivedClass(int i,int j):base(i) 

很明显,只有在用base显示调用父类的构造函数时,程序才不会默认的调用不带参数的构造函数。

C#构造函数的特性及使用就向你介绍到这里,希望对你理解和使用C#构造函数的特性有所帮助。

【编辑推荐】

  1. C#静态构造函数特点浅析
  2. C#静态构造函数学习心得浅析
  3. C#继承构造函数实现浅析
  4. C#继承与构造函数的调用实例演示
  5. C#调用构造函数浅析
责任编辑:仲衡 来源: javaeye
相关推荐

2009-08-13 13:42:54

C#构造函数

2009-08-28 17:01:43

C#构造函数

2009-08-13 18:36:36

C#继承构造函数

2009-07-30 15:24:13

C#析构函数C#构造函数

2009-12-24 09:16:11

C#泛型

2009-08-24 18:09:13

C#构造函数

2009-07-31 14:15:38

C# 构造函数

2009-08-13 17:38:42

C#构造函数

2009-07-31 15:37:45

C#静态构造函数

2009-08-20 14:28:00

C#静态构造函数

2009-09-04 11:15:07

选择C#构造函数

2009-09-17 16:34:24

C#组件类

2009-08-14 09:15:28

C#调用构造函数

2009-07-31 15:44:02

C#静态构造函数

2009-08-14 17:24:28

C#构造函数和析构函数

2009-08-13 14:24:44

C#结构体构造函数

2009-08-14 09:43:59

C#复制构造函数

2011-08-17 10:58:59

Objective-C构造函数

2009-08-14 09:58:09

C#复制构造函数

2009-08-13 18:15:06

C#继承构造函数
点赞
收藏

51CTO技术栈公众号