C#復制構(gòu)造函數(shù)的實現(xiàn)實例淺析
C#復制構(gòu)造函數(shù)的一點認識:
某些編程語言的類提供了復制構(gòu)造函數(shù),即從當前類實例構(gòu)造一個新的類實例。在C#編程語言中,沒有提供復制構(gòu)造函數(shù),如果要實現(xiàn)復制構(gòu)造的功能,就必須自行編寫這樣的構(gòu)造函數(shù)。
實現(xiàn)C#復制構(gòu)造函數(shù)的技術(shù)要點
本示例主要說明了如何實現(xiàn)復制構(gòu)造函數(shù),技術(shù)要點如下。
◆C#復制構(gòu)造函數(shù)仍然屬于構(gòu)造函數(shù),不同的是以類本身作為參數(shù)的數(shù)據(jù)類型。
◆調(diào)用構(gòu)造函數(shù)時,參數(shù)必須是已經(jīng)創(chuàng)建的類實例。
C#復制構(gòu)造函數(shù)實現(xiàn)步驟
(1)創(chuàng)建控制臺應用程序項目,命名為“CopyConstruct”。
(2)打開并編輯Program.cs文件,代碼如下所示。
- using System;
 - using System.Collections.Generic;
 - using System.Text;
 - namespace CopyConstruct
 - {
 - class Program
 - {
 - static void Main(string[] args)
 - {
 - Person personA = new Person();//使用默認構(gòu)造函數(shù)創(chuàng)建示例
 - personA.FirstName = "Pony";
 - personA.LastName = "Smith";
 - personA.Age = 42;
 - Person personB = new Person(personA);//使用C#復制構(gòu)造函數(shù)創(chuàng)建示例
 - Console.WriteLine("personB的數(shù)據(jù):{0} {1}-{2}",
 - personB.FirstName, personB.LastName, personB.Age);
 - Console.ReadLine();
 - }
 - }
 - class Person//表示“人”的類
 - {
 - public string FirstName { get; set; }
 - public string LastName { get; set; }
 - public int Age { get; set;}
 - public Person()//默認構(gòu)造函數(shù)
 - {
 - }
 - //C#復制構(gòu)造函數(shù),以類實例作為參數(shù)的構(gòu)造函數(shù),將參數(shù)實例的字段賦給當前實例字段
 - public Person(Person source)
 - {
 - this.FirstName = source.FirstName;
 - this.LastName = source.LastName;
 - this.Age = source.Age;
 - }
 - }
 - }
 
(3)按F5鍵運行程序,運行結(jié)果如下所示。
personB的數(shù)據(jù):Pony Smith-42
C#復制構(gòu)造函數(shù)源程序解讀
(1)本示例的Person類中定義了兩個構(gòu)造函數(shù)。一個是默認的、不帶參數(shù)的構(gòu)造函數(shù),另一個是以Person類實例作為參數(shù)的復制構(gòu)造函數(shù)。在主程序入口Main方法中,首先使用默認的構(gòu)造函數(shù)創(chuàng)建Person類的實例personA,然后給personA中的字段賦值,再將personA類實例作為Person類復制構(gòu)造函數(shù)的參數(shù),創(chuàng)建Person類的另一個實例personB,***將personB的數(shù)據(jù)打印出來。本示例程序的流程圖。
(2)使用構(gòu)造函數(shù)的時候,將在托管內(nèi)存中為新的類實例分配位置,而不是指向原先的類實例的托管內(nèi)存位置。在本示例程序中,personB類實例和personA類實例不存在引用關(guān)系,其中一個實例字段的修改不會對另一個實例產(chǎn)生影響.
C#復制構(gòu)造函數(shù)的相關(guān)內(nèi)容就向你介紹里,希望對你理解和學習C#復制構(gòu)造函數(shù)有所幫助。
【編輯推薦】















 
 
 
 
 
 
 