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

C# this保留字分析

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

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

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

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

C# this保留字不能用于靜態(tài)成員的實現(xiàn)里,因為這時對象或結(jié)構并未實例化;

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

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. //用對象本身實例化自己沒有意義  
  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. }  

【編輯推薦】

  1. C#靜態(tài)變量簡單分析
  2. C# sealed修飾符學習筆記
  3. C# const和static readonly區(qū)別淺談
  4. C#隱含類型局部變量淺析
  5. C#對象初始化器描述
責任編輯:佚名 來源: 博客園
相關推薦

2009-09-11 10:51:33

C#保留小數(shù)位

2009-08-19 11:21:02

C# ListBox控

2009-08-26 16:46:06

C# ThreadSt

2009-08-26 10:34:59

C# Hashtabl

2009-09-01 09:16:57

C#使用SharpZi

2009-08-21 17:45:40

C#調(diào)用COM對象

2009-09-01 10:58:46

C#匿名類型對象

2012-10-31 17:37:48

2009-09-01 18:05:17

C#類型聲明

2009-09-01 18:36:35

C#委托實例

2009-09-18 10:45:31

C#數(shù)組操作

2009-08-27 15:17:18

C# interfacinterface使用

2009-09-04 14:01:30

C#存儲BLOB對象

2009-08-26 16:26:37

C#迭代器模式

2009-08-26 18:00:07

C#內(nèi)部類

2009-08-27 15:34:38

C#命名空間

2009-08-27 18:02:22

C#事件處理

2009-08-27 18:05:54

C#索引功能

2009-08-31 18:24:26

編譯C#文件

2009-09-01 17:32:04

C#版本控制
點贊
收藏

51CTO技術棧公眾號