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

从基类开始构造对象。

public class MyBaseClass  
{  
public MyBaseClass()  
{  
Console.WriteLine("In MyBaseClass()");  
}  
public MyBaseClass(int i)  
{  
Console.WriteLine("In MyBaseClass(int i)");  
}  
}  
public class MyDerivedClass : MyBaseClass  
{  
public MyDerivedClass()  
{  
Console.WriteLine("In MyDerivedClass()");  
}  
public MyDerivedClass(int i)  
{  
Console.WriteLine("In MyDerivedClass(int i)");  
}  
//public MyDerivedClass(int i, int j)  
//{  
//Console.WriteLine("In MyDerivedClass(int i,int j)");  
//}  
public MyDerivedClass(int i, int j)  
base(i)  
{  
Console.WriteLine("In MyDerivedClass(int i,int j):base(i)");  
}  
}  
class Program  
{  
static void Main(string[] args)  
{  
//Event1  
MyDerivedClass myObj1 = new MyDerivedClass();  
Console.WriteLine();  
//Event2  
MyDerivedClass myObj2 = new MyDerivedClass(4);  
Console.WriteLine();  
//Event3  
MyDerivedClass myObj3 = new MyDerivedClass(4,8);  
Console.WriteLine();  
Console.ReadKey();  
}  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.

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

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

很明显,只有在用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-24 18:09:13

C#构造函数

2009-07-31 14:15:38

C# 构造函数

2009-08-13 18:36:36

C#继承构造函数

2009-12-24 09:16:11

C#泛型

2009-07-30 15:24:13

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

2009-08-13 17:38:42

C#构造函数

2009-09-17 16:34:24

C#组件类

2009-07-31 15:44:02

C#静态构造函数

2009-08-14 09:15:28

C#调用构造函数

2009-09-04 11:15:07

选择C#构造函数

2009-07-31 15:37:45

C#静态构造函数

2009-08-20 14:28:00

C#静态构造函数

2024-05-17 08:42:52

AttributeMyClass方法

2009-08-14 09:58:09

C#复制构造函数

2009-08-14 17:24:28

C#构造函数和析构函数

2009-08-14 09:43:59

C#复制构造函数

2009-08-13 14:24:44

C#结构体构造函数

2024-07-10 08:31:59

C#特性代码
点赞
收藏

51CTO技术栈公众号