自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn)實(shí)例淺析

開發(fā) 后端
C#復(fù)制構(gòu)造函數(shù)是如何實(shí)現(xiàn)的?C#復(fù)制構(gòu)造函數(shù)實(shí)現(xiàn)的過程中有哪些是需要注意的呢?那么本文就和你一起探討C#復(fù)制構(gòu)造函數(shù)的一些問題。

C#復(fù)制構(gòu)造函數(shù)的一點(diǎn)認(rèn)識(shí):

某些編程語言的類提供了復(fù)制構(gòu)造函數(shù),即從當(dāng)前類實(shí)例構(gòu)造一個(gè)新的類實(shí)例。在C#編程語言中,沒有提供復(fù)制構(gòu)造函數(shù),如果要實(shí)現(xiàn)復(fù)制構(gòu)造的功能,就必須自行編寫這樣的構(gòu)造函數(shù)。

實(shí)現(xiàn)C#復(fù)制構(gòu)造函數(shù)的技術(shù)要點(diǎn)

本示例主要說明了如何實(shí)現(xiàn)復(fù)制構(gòu)造函數(shù),技術(shù)要點(diǎn)如下。

◆C#復(fù)制構(gòu)造函數(shù)仍然屬于構(gòu)造函數(shù),不同的是以類本身作為參數(shù)的數(shù)據(jù)類型。

◆調(diào)用構(gòu)造函數(shù)時(shí),參數(shù)必須是已經(jīng)創(chuàng)建的類實(shí)例。

C#復(fù)制構(gòu)造函數(shù)實(shí)現(xiàn)步驟

(1)創(chuàng)建控制臺(tái)應(yīng)用程序項(xiàng)目,命名為“CopyConstruct”。

(2)打開并編輯Program.cs文件,代碼如下所示。

  1. using System;   
  2.  
  3. using System.Collections.Generic;   
  4.  
  5. using System.Text;   
  6.  
  7. namespace CopyConstruct   
  8.  
  9. {   
  10.  
  11. class Program   
  12.  
  13. {   
  14.  
  15. static void Main(string[] args)   
  16.  
  17. {   
  18.  
  19. Person personA = new Person();//使用默認(rèn)構(gòu)造函數(shù)創(chuàng)建示例   
  20.  
  21. personA.FirstName = "Pony";   
  22.  
  23. personA.LastName = "Smith";   
  24.  
  25. personA.Age = 42;   
  26.  
  27. Person personB = new Person(personA);//使用C#復(fù)制構(gòu)造函數(shù)創(chuàng)建示例   
  28.  
  29. Console.WriteLine("personB的數(shù)據(jù):{0} {1}-{2}",   
  30.  
  31. personB.FirstName, personB.LastName, personB.Age);   
  32.  
  33. Console.ReadLine();   
  34.  
  35. }   
  36.  
  37. }   
  38.  
  39. class Person//表示“人”的類   
  40.  
  41. {   
  42.  
  43. public string FirstName { getset; }   
  44.  
  45. public string LastName { getset; }   
  46.  
  47. public int Age { getset;}   
  48.  
  49. public Person()//默認(rèn)構(gòu)造函數(shù)   
  50.  
  51. {   
  52.  
  53. }   
  54.  
  55. //C#復(fù)制構(gòu)造函數(shù),以類實(shí)例作為參數(shù)的構(gòu)造函數(shù),將參數(shù)實(shí)例的字段賦給當(dāng)前實(shí)例字段   
  56.  
  57. public Person(Person source)   
  58.  
  59. {   
  60.  
  61. this.FirstName = source.FirstName;   
  62.  
  63. this.LastName = source.LastName;   
  64.  
  65. this.Age = source.Age;   
  66.  
  67. }   
  68.  
  69. }   
  70.  
  71. }  

(3)按F5鍵運(yùn)行程序,運(yùn)行結(jié)果如下所示。

personB的數(shù)據(jù):Pony Smith-42

C#復(fù)制構(gòu)造函數(shù)源程序解讀

(1)本示例的Person類中定義了兩個(gè)構(gòu)造函數(shù)。一個(gè)是默認(rèn)的、不帶參數(shù)的構(gòu)造函數(shù),另一個(gè)是以Person類實(shí)例作為參數(shù)的復(fù)制構(gòu)造函數(shù)。在主程序入口Main方法中,首先使用默認(rèn)的構(gòu)造函數(shù)創(chuàng)建Person類的實(shí)例personA,然后給personA中的字段賦值,再將personA類實(shí)例作為Person類復(fù)制構(gòu)造函數(shù)的參數(shù),創(chuàng)建Person類的另一個(gè)實(shí)例personB,***將personB的數(shù)據(jù)打印出來。本示例程序的流程圖。

(2)使用構(gòu)造函數(shù)的時(shí)候,將在托管內(nèi)存中為新的類實(shí)例分配位置,而不是指向原先的類實(shí)例的托管內(nèi)存位置。在本示例程序中,personB類實(shí)例和personA類實(shí)例不存在引用關(guān)系,其中一個(gè)實(shí)例字段的修改不會(huì)對(duì)另一個(gè)實(shí)例產(chǎn)生影響.

C#復(fù)制構(gòu)造函數(shù)的相關(guān)內(nèi)容就向你介紹里,希望對(duì)你理解和學(xué)習(xí)C#復(fù)制構(gòu)造函數(shù)有所幫助。

【編輯推薦】

  1. C#繼承構(gòu)造函數(shù)實(shí)現(xiàn)淺析
  2. C#繼承與構(gòu)造函數(shù)的調(diào)用實(shí)例演示
  3. C#調(diào)用構(gòu)造函數(shù)淺析
  4. C#構(gòu)造函數(shù)的特性及使用詳解
  5. C#復(fù)制構(gòu)造函數(shù)的編寫淺析
責(zé)任編輯:仲衡 來源: 百度空間
相關(guān)推薦

2009-08-14 09:43:59

C#復(fù)制構(gòu)造函數(shù)

2009-08-14 09:58:09

C#復(fù)制構(gòu)造函數(shù)

2009-08-27 18:09:49

C#接口的實(shí)現(xiàn)

2009-08-13 18:15:06

C#繼承構(gòu)造函數(shù)

2009-08-13 17:38:42

C#構(gòu)造函數(shù)

2009-08-14 09:15:28

C#調(diào)用構(gòu)造函數(shù)

2009-07-31 15:44:02

C#靜態(tài)構(gòu)造函數(shù)

2009-08-13 18:36:36

C#繼承構(gòu)造函數(shù)

2009-08-31 12:31:45

C#創(chuàng)建文件夾

2009-09-18 09:02:45

CLR Via C#

2009-08-13 18:02:11

C#靜態(tài)構(gòu)造函數(shù)

2009-08-13 17:30:30

C#構(gòu)造函數(shù)

2009-08-13 13:42:54

C#構(gòu)造函數(shù)

2009-09-04 17:20:23

C# DES加密解密

2009-09-03 17:23:45

C#發(fā)送郵件

2009-08-17 14:41:47

C#進(jìn)度條實(shí)現(xiàn)

2009-09-01 13:59:01

C#操作Excel

2009-09-09 12:55:59

C# TextBox事

2009-09-01 16:59:25

C#畫直線

2009-08-24 13:41:23

C# 泛型約束
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)