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

C#別名指示符學(xué)習(xí)經(jīng)驗(yàn)

開(kāi)發(fā) 后端
這里介紹C#別名指示符在所有命名空間最外層定義,作用域?yàn)檎麄€(gè)單元文件。如果定義在某個(gè)命名空間內(nèi),那么它只在直接隸屬的命名空間內(nèi)起作用。

C#語(yǔ)言有很多值得學(xué)習(xí)的地方,這里我們主要介紹C#別名指示符,包括介紹C#別名指示符在所有命名空間最外層定義等方面。

C#別名指示符是什么?

通過(guò)C#別名指示符我們可以為某個(gè)類(lèi)型起一個(gè)別名,主要用于解決兩個(gè)命名空間內(nèi)有同名類(lèi)型的沖突或避免使用冗余的命名空間,C#別名指示符在所有命名空間最外層定義,作用域?yàn)檎麄€(gè)單元文件。如果定義在某個(gè)命名空間內(nèi),那么它只在直接隸屬的命名空間內(nèi)起作用。

示例:

  1. Class1.cs:   
  2. using System;  
  3. using System.Collections.Generic;  
  4. using System.Text;  
  5.    
  6. namespace com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib01  
  7. {  
  8. class Class1  
  9. {  
  10. public override string ToString()  
  11. {  
  12. return "com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib01's Class1";  
  13. }  
  14. }  
  15. }  
  16. Class2.cs:   
  17. using System;  
  18. using System.Collections.Generic;  
  19. using System.Text;  
  20.    
  21. namespace com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib02  
  22. {  
  23. class Class1  
  24. {  
  25. public override string ToString()  
  26. {  
  27. return "com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib02's Class1";  
  28. }  
  29. }  
  30. }  
  31. 主單元(Program.cs):  
  32. using System;  
  33. using System.Collections.Generic;  
  34. using System.Text;  
  35.    
  36. //使用別名指示符解決同名類(lèi)型的沖突  
  37. //在所有命名空間最外層定義,作用域?yàn)檎麄€(gè)單元文件  
  38. using Lib01Class1 = com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib01.Class1;  
  39. using Lib02Class2 = com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib02.Class1;  
  40.    
  41. namespace Example19  
  42. {  
  43. namespace Test1  
  44. {  
  45. //Test1Class1在Test1命名空間內(nèi)定義,作用域僅在Test1之內(nèi)  
  46. using Test1Class1 = com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib01.Class1;  
  47.    
  48. class Class1  
  49. {  
  50. //Lib01Class1和Lib02Class2在這可以正常使用  
  51. Lib01Class1 tmpObj1 = new Lib01Class1();  
  52. Lib02Class2 tmpObj2 = new Lib02Class2();  
  53. //TestClass1在這可以正常使用  
  54. Test1Class1 tmpObj3 = new Test1Class1();  
  55. }  
  56. }  
  57. namespace Test2  
  58. {  
  59. using Test1Class2 = com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib01.Class1;  
  60.    
  61. class Program  
  62. {  
  63. static void Main(string[] args)  
  64. {  
  65. //Lib01Class1和Lib02Class2在這可以正常使用  
  66. Lib01Class1 tmpObj1 = new Lib01Class1();  
  67. Lib02Class2 tmpObj2 = new Lib02Class2();  
  68.    
  69. //注意這里,TestClass1在這不可以正常使用。  
  70. //因?yàn)?,在Test2命名空間內(nèi)不能使用Test1命名空間定義的別名  
  71. //Test1Class1 tmpObj3 = new Test1Class1();  
  72.  
  73. //TestClass2在這可以正常使用  
  74. Test1Class2 tmpObj3 = new Test1Class2();  
  75.    
  76. Console.WriteLine(tmpObj1);  
  77. Console.WriteLine(tmpObj2);  
  78. Console.WriteLine(tmpObj3);  
  79.    
  80. Console.ReadLine();  
  81. }  
  82. }  
  83. }  

【編輯推薦】

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

2009-08-27 14:44:11

C# interfac

2009-08-26 17:24:49

C# Mutex對(duì)象

2009-08-31 15:48:02

C# Singleto

2009-08-20 15:33:03

C#跳躍語(yǔ)句

2009-08-25 16:14:06

C#使用ADOX

2009-08-13 18:13:27

C#學(xué)習(xí)經(jīng)驗(yàn)

2009-08-19 16:36:29

C#管道技術(shù)

2009-08-19 10:25:18

C#托管資源

2009-08-11 14:20:41

C# .NET學(xué)習(xí)經(jīng)驗(yàn)

2009-09-04 14:30:28

C#讀取BLOB數(shù)據(jù)

2009-08-12 15:55:12

C#接口定義

2009-08-24 17:06:37

C#字符串

2009-08-28 16:43:57

C#多線(xiàn)程學(xué)習(xí)

2009-08-27 09:27:49

C#擴(kuò)展方法

2009-08-28 10:31:47

C#字符ASCII碼

2009-08-31 16:51:11

C# Main()方法

2009-09-01 13:10:39

C#讀取Word

2009-08-24 15:50:23

C# 泛型C# 泛型委托

2009-08-24 16:02:10

C# Windows應(yīng)

2009-08-24 17:34:14

C#創(chuàng)建XML Web
點(diǎn)贊
收藏

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