在上一篇,我们了解了一下方法的概念,以下内容将继续C#中类的函数成员构造方法及析构方法:

概念:构造方法,大家也习惯叫做构造函数,构造方法与类名是相同的,没有返回值,同时也不需要void关健字,但是可以设置参数。构造方法是在实例化(new)时调用的,从而我们可以通过构造函数对类进行一些初始化的设置。
例:
快速撑握C#知识点之类的函数成员(二) _快速    class Test
快速撑握C#知识点之类的函数成员(二) _撑握_02    
{
快速撑握C#知识点之类的函数成员(二) _休闲_05        
private string strI = ""//声明一个字段strI
快速撑握C#知识点之类的函数成员(二) _函数_06
        /// <summary>
快速撑握C#知识点之类的函数成员(二) _休闲_05        
/// 在构造函数中为strI初始化值
快速撑握C#知识点之类的函数成员(二) _C#知识_09        
/// </summary>

快速撑握C#知识点之类的函数成员(二) _休闲_05        public Test()
快速撑握C#知识点之类的函数成员(二) _C#知识_11        
{
快速撑握C#知识点之类的函数成员(二) _休闲_05            strI 
= "状态比能力重要";
快速撑握C#知识点之类的函数成员(二) _C#知识_09        }

快速撑握C#知识点之类的函数成员(二) _休闲_05
快速撑握C#知识点之类的函数成员(二) _撑握_17        
/// <summary>
快速撑握C#知识点之类的函数成员(二) _休闲_05        
/// 用Run方法返回strI
快速撑握C#知识点之类的函数成员(二) _休闲_05        
/// </summary>
快速撑握C#知识点之类的函数成员(二) _C#知识_09        
/// <returns></returns>

快速撑握C#知识点之类的函数成员(二) _休闲_05        public string Run()
快速撑握C#知识点之类的函数成员(二) _C#知识_23        
{
快速撑握C#知识点之类的函数成员(二) _休闲_05            
return strI;
快速撑握C#知识点之类的函数成员(二) _C#知识_09        }

快速撑握C#知识点之类的函数成员(二) _函数_28    }

快速撑握C#知识点之类的函数成员(二) _快速    class Program
快速撑握C#知识点之类的函数成员(二) _C#知识_30    
{
快速撑握C#知识点之类的函数成员(二) _休闲_05        
static void Main(string[] args)
快速撑握C#知识点之类的函数成员(二) _函数_34        
{
快速撑握C#知识点之类的函数成员(二) _休闲_05            Test T 
= new Test();//建立对象T的引用为Test,并为实例化。
快速撑握C#知识点之类的函数成员(二) _休闲_05
            Console.WriteLine(T.Run());//T.Run为对象T中的方法。
快速撑握C#知识点之类的函数成员(二) _休闲_05
            Console.ReadLine();
快速撑握C#知识点之类的函数成员(二) _C#知识_09        }

快速撑握C#知识点之类的函数成员(二) _函数_28    }

在实际的应用中,我们经常会遇到在实例化对象时,就需要为类中传递一些参数,这种情况下,我们可以使用构造方法的参数。比如,我们为上例增加一个叙述者的名字,并可以让叙述者说不同的话:
快速撑握C#知识点之类的函数成员(二) _快速    class Test
快速撑握C#知识点之类的函数成员(二) _撑握_43    
{
快速撑握C#知识点之类的函数成员(二) _休闲_05        
private string strI = ""//声明一个字段strI
快速撑握C#知识点之类的函数成员(二) _函数_06
        /// <summary>
快速撑握C#知识点之类的函数成员(二) _休闲_05        
/// 在构造函数中为strI初始化值
快速撑握C#知识点之类的函数成员(二) _C#知识_09        
/// </summary>

快速撑握C#知识点之类的函数成员(二) _休闲_05        public Test(string name,string strI)
快速撑握C#知识点之类的函数成员(二) _函数_52        
{
快速撑握C#知识点之类的函数成员(二) _休闲_05            
this.strI = name +"说:"+ strI;
快速撑握C#知识点之类的函数成员(二) _C#知识_09        }

快速撑握C#知识点之类的函数成员(二) _休闲_05
快速撑握C#知识点之类的函数成员(二) _休闲_58        
/// <summary>
快速撑握C#知识点之类的函数成员(二) _休闲_05        
/// 用Run方法返回strI
快速撑握C#知识点之类的函数成员(二) _休闲_05        
/// </summary>
快速撑握C#知识点之类的函数成员(二) _C#知识_09        
/// <returns></returns>

快速撑握C#知识点之类的函数成员(二) _休闲_05        public string Run()
快速撑握C#知识点之类的函数成员(二) _撑握_64        
{
快速撑握C#知识点之类的函数成员(二) _休闲_05            
return strI;
快速撑握C#知识点之类的函数成员(二) _函数_28        }

快速撑握C#知识点之类的函数成员(二) _快速

快速撑握C#知识点之类的函数成员(二) _快速    class Program
快速撑握C#知识点之类的函数成员(二) _函数_71    
{
快速撑握C#知识点之类的函数成员(二) _休闲_05        
static void Main(string[] args)
快速撑握C#知识点之类的函数成员(二) _函数_75        
{
快速撑握C#知识点之类的函数成员(二) _休闲_05
快速撑握C#知识点之类的函数成员(二) _休闲_05            Test T 
= new Test("×××""我们爱我们的民族,这是我们自信心的源泉。");//建立对象T的引用为Test,并为实例化。
快速撑握C#知识点之类的函数成员(二) _休闲_05
            Console.WriteLine(T.Run());//T.Run为对象T中的方法。
快速撑握C#知识点之类的函数成员(二) _休闲_05
            Console.ReadLine();
快速撑握C#知识点之类的函数成员(二) _C#知识_09        }

快速撑握C#知识点之类的函数成员(二) _函数_28    }
可以看到,在构造方法加上参数之后,我们在实例化对象时,同样也需要为这些参数加上相应的参数。

构造方法在实际的开发过程中应用非常广泛,包括在应用设计模式时同样会有非常多的地方用到。

析构方法,也叫析构函数,是用来析构类的实例释放资源的。不过很多时候我们不需要去应用析构方法,因为.NET Framework 垃圾回收器会隐式地管理对象的内存分配和释放,但是,当应用程序封装窗口、文件和网络连接这类非托管资源时,应当使用析构函数释放这些资源。
例:
快速撑握C#知识点之类的函数成员(二) _快速    class Test
快速撑握C#知识点之类的函数成员(二) _撑握_85    
{
快速撑握C#知识点之类的函数成员(二) _休闲_05        
~Test()
快速撑握C#知识点之类的函数成员(二) _休闲_89        

快速撑握C#知识点之类的函数成员(二) _休闲_05        
快速撑握C#知识点之类的函数成员(二) _C#知识_09        }

快速撑握C#知识点之类的函数成员(二) _函数_28    }
注意:
类中能有多个构造方法可以形成重载,但是只能有一个析构方法。
构造方法能有修饰符及参数,而析构方法既没有修饰符,也没有参数。
构造方法和析构方法无法继承,构造方法可以被重载,析构方法不可以。
构造方法和析构方法都无法调用,他们都是自动运行的。