您好,登錄后才能下訂單哦!
C#中怎么實現復制構造函數,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
C#復制構造函數的一點認識:
某些編程語言的類提供了復制構造函數,即從當前類實例構造一個新的類實例。在C#編程語言中,沒有提供復制構造函數,如果要實現復制構造的功能,就必須自行編寫這樣的構造函數。
實現C#復制構造函數的技術要點
本示例主要說明了如何實現復制構造函數,技術要點如下。
◆C#復制構造函數仍然屬于構造函數,不同的是以類本身作為參數的數據類型。
◆調用構造函數時,參數必須是已經創建的類實例。
C#復制構造函數實現步驟
(1)創建控制臺應用程序項目,命名為“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();//使用默認構造函數創建示例 personA.FirstName = "Pony"; personA.LastName = "Smith"; personA.Age = 42; Person personB = new Person(personA);//使用C#復制構造函數創建示例 Console.WriteLine("personB的數據:{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()//默認構造函數 { } //C#復制構造函數,以類實例作為參數的構造函數,將參數實例的字段賦給當前實例字段 public Person(Person source) { this.FirstName = source.FirstName; this.LastName = source.LastName; this.Age = source.Age; } } }
(3)按F5鍵運行程序,運行結果如下所示。
personB的數據:Pony Smith-42
C#復制構造函數源程序解讀
(1)本示例的Person類中定義了兩個構造函數。一個是默認的、不帶參數的構造函數,另一個是以Person類實例作為參數的復制構造函數。在主程序入口Main方法中,首先使用默認的構造函數創建Person類的實例personA,然后給personA中的字段賦值,再將personA類實例作為Person類復制構造函數的參數,創建Person類的另一個實例personB,***將personB的數據打印出來。本示例程序的流程圖。
(2)使用構造函數的時候,將在托管內存中為新的類實例分配位置,而不是指向原先的類實例的托管內存位置。在本示例程序中,personB類實例和personA類實例不存在引用關系,其中一個實例字段的修改不會對另一個實例產生影響.
關于C#中怎么實現復制構造函數問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。