溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C# 中this保留字的作用是什么

發(fā)布時(shí)間:2021-07-08 14:41:00 來源:億速云 閱讀:136 作者:Leah 欄目:編程語言

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)C# 中this保留字的作用是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

C#語言有很多值得學(xué)習(xí)的地方,這里我們主要介紹C# this保留字,包括介紹在結(jié)構(gòu)的方法中出現(xiàn)表示對調(diào)用該方法的結(jié)果的引用等方面。

this 是一個保留字,僅限于構(gòu)造函數(shù)和方法成員中使用;

在類的構(gòu)造函數(shù)中出現(xiàn)表示對正在構(gòu)造的對象本身的引用,在類的方法中出現(xiàn)表示對調(diào)用該方法的對象的引用,在結(jié)構(gòu)的構(gòu)造上函數(shù)中出現(xiàn)表示對正在構(gòu)造的結(jié)構(gòu)的引用,在結(jié)構(gòu)的方法中出現(xiàn)表示對調(diào)用該方法的結(jié)果的引用;

C# this保留字不能用于靜態(tài)成員的實(shí)現(xiàn)里,因?yàn)檫@時(shí)對象或結(jié)構(gòu)并未實(shí)例化;

在 C# 系統(tǒng)中,this 實(shí)際上是一個常量,所以不能使用 this++ 這樣的運(yùn)算;

C# this保留字一般用于限定同名的隱藏成員、將對象本身做為參數(shù)、聲明索引訪問器、判斷傳入?yún)?shù)的對象是否為本身。

示例:

  1. using System;  

  2. using System.Collections.Generic;  

  3. using System.Text;  

  4.    

  5. namespace Example10  

  6. {  

  7. class Class1  

  8. {  

  9. private double c;  

  10. private string value;  

  11.    

  12. public double C  

  13. {  

  14. get  

  15. {  

  16. return c;  

  17. }  

  18. }  

  19. public Class1(double c)  

  20. {  

  21. //限定同名的隱藏成員  

  22. this.c = c;  

  23. }  

  24. public Class1(Class1 value)  

  25. {  

  26. //用對象本身實(shí)例化自己沒有意義  

  27. if (this != value)  

  28. {  

  29. c = value.C;  

  30. }  

  31. }  

  32. public override string ToString()  

  33. {  

  34. //將對象本身做為參數(shù)  

  35. return string.Format("{0} Celsius = {1} Fahrenheit", 
    c, UnitTransClass.C2F(this));  

  36. }  

  37.    

  38. //由于好奇,在這做了一個效率測試,想看看到底哪種方式訪問成員變量更快,
    結(jié)論:區(qū)別不大。。。  

  39. public string Test1()  

  40. {  

  41. long vTickCount = Environment.TickCount;  

  42. for (int i = 0; i < 10000000; i++)  

  43. this.value = i.ToString();  

  44. return string.Format("Have this.: {0} MSEL", 
    Environment.TickCount - vTickCount);  

  45. }  

  46. public string Test2()  

  47. {  

  48. long vTickCount = Environment.TickCount;  

  49. for (int i = 0; i < 10000000; i++)  

  50. value = i.ToString();  

  51. return string.Format("Don't have this.: {0} MSEL", 
    Environment.TickCount - vTickCount);  

  52. }  

  53. }  

  54. class UnitTransClass  

  55. {  

  56. public static double C2F(Class1 value)  

  57. {  

  58. //攝氏到華氏的轉(zhuǎn)換公式  

  59. return 1.8 * value.C + 32;  

  60. }  

  61. }  

  62. class Program  

  63. {  

  64. static void Main(string[] args)  

  65. {  

  66. Class1 tmpObj = new Class1(37.5);  

  67. Console.WriteLine(tmpObj);  

  68. Console.WriteLine(tmpObj.Test1());  

  69. Console.WriteLine(tmpObj.Test2());  

  70. Console.ReadLine();  

  71. }  

  72. }  

上述就是小編為大家分享的C# 中this保留字的作用是什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI