C#中的构造函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中的构造函数相关的知识,希望对你有一定的参考价值。

在创建某个类时,由于对该对象的状态(数据)不是很明确,因此需要对其进行初始化。比如说我们要在长方形这个类中创建一个对象,或者说新建一个长方形,那么我们首先要确定他的长和宽,假如我们无法确定它的长和宽,那么我们是无法造出一个长方形来的。所以就要使用这个长方形类中一个用来构造该类所有对象的函数——构造函数。由于该函数要在创建一个新对象时使用,因此它不肯能存在于对象之后,那么我们就必须在类中对它进行声明和定义。

    如果有一个名称是MyClass的类,其定义的构造函数框架如下:

 

[csharp] view plain copy
 
 技术分享技术分享
  1. <span style="font-family:Microsoft YaHei;font-size:18px;">public class MyClass  
  2. {  
  3.     public MyClass()  
  4.     {  
  5.   
  6.     }  
  7. }</span>  

    下面就拿计算长方形的面积来举例吧:

    首先,声明一个rectangle类:

   

[csharp] view plain copy
 
 技术分享技术分享
  1. <span style="font-family:Microsoft YaHei;font-size:18px;">class rectangle  
  2.     {  
  3.         public rectangle(int w, int h)  //构造函数的声明  
  4.         {  
  5.             width = w;  
  6.             high = h;  
  7.         }  
  8.         public int area()  
  9.         {  
  10.             return width * high;  
  11.         }  
  12.         private int width;  
  13.         private int high;  
  14.     }</span>  


    其次,将类实例化为A,完成初始化。

   

[csharp] view plain copy
 
 技术分享技术分享
  1. <span style="font-family:Microsoft YaHei;font-size:18px;"> Program  
  2.     {  
  3.         static void Main(string[] args)  
  4.         {  
  5.             rectangle A = new rectangle(3,4);    //创建对象A时执行了初始化  
  6.             Console.WriteLine("长方形的面积为{0}",A.area());  
  7.         }  
  8.     }</span>  

 

    最后,要注意的是, 构造函数没有返回值,而且一个类可以有多个构造函数。使用有参数的构造函数时,需要自己写一个空参数的构造函数。


以上是关于C#中的构造函数的主要内容,如果未能解决你的问题,请参考以下文章

c#学习-base和this在构造函数中的应用

C#:如果一个类有两个构造函数,这些构造函数共享一些代码的最佳方式是啥? [复制]

C#中的构造函数

为啥 c# 中的 Random 构造函数在方法末尾分配 Seed 参数?

构造函数中的 C# 赋值给成员......不会改变它

c# 中的类和构造函数在不同程序集中的 c# 中的默认访问说明符是啥 [重复]