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

淺析C# Anonymous Type

開(kāi)發(fā) 后端
這里介紹C# Anonymous Type和一般的Named Type并沒(méi)有本質(zhì)的區(qū)別。但是話不能太絕對(duì),他們之間還是有一點(diǎn)小小的差異。

C# Anonymous Type和一般的Named Type并沒(méi)有本質(zhì)的區(qū)別。但是話不能太絕對(duì),他們之間還是有一點(diǎn)小小的差異。到底是什么樣差異,我在這里先賣一個(gè)關(guān)子。在具體介紹這個(gè)差異的時(shí)候,我們先來(lái)看看一個(gè)Sample:


Artech.NewFeatureInCSharp.Library中定一個(gè)Employee Type:

  1. usingSystem;  
  2. usingSystem.Collections.Generic;  
  3. usingSystem.Linq;  
  4. usingSystem.Text;  
  5.  
  6. namespaceArtech.NewFeatureInCSharp.Library  
  7. {  
  8. publicclassEmployee  
  9. {  
  10. privateGuid_id;  
  11. privatestring_name;  
  12.  
  13. publicGuidID  
  14. {  
  15. get{return_id;}  
  16. set{_id=value;}  
  17. }  
  18.  
  19. publicstringName  
  20. {  
  21. get{return_name;}  
  22. set{_name=value;}  
  23. }  
  24. }  

和一個(gè)Static的Utility Class:

  1. usingSystem;  
  2. usingSystem.Collections.Generic;  
  3. usingSystem.Linq;  
  4. usingSystem.Text;  
  5.  
  6. namespaceArtech.NewFeatureInCSharp.Library  
  7. {  
  8. publicstaticclassUtility  
  9. {  
  10. publicstaticobjectAnonymous_GetEmployee(Guidid,stringname)  
  11. {  
  12. returnnew{ID=id,Name=name};  
  13. }  
  14.  
  15. publicstaticEmployeeGetEmployee(Guidid,stringname)  
  16. {  
  17. returnnewEmployee{ID=id,Name=name};  
  18. }  
  19. }  

在Utility中定義了兩個(gè)GetEmployee方法,分別返回以Anonymous Type形式和Named Type形式的Employee對(duì)象。

  1. usingSystem;  
  2. usingSystem.Collections.Generic;  
  3. usingSystem.Linq;  
  4. usingSystem.Text;  
  5. usingArtech.NewFeatureInCSharp.Library;  
  6.  
  7. namespaceArtech.NewFeatureInCSharp.ConsoleApp  
  8. {  
  9. classProgram  
  10. {  
  11. staticvoidMain(string[]args)  
  12. {  
  13. varv1=new{ID=Guid.NewGuid(),Name="ZhangSan"};  
  14. varv2=new{ID=Guid.NewGuid(),Name="LiSi"};  
  15. varv3=Utility.Anonymous_GetEmployee(Guid.NewGuid(),"WangWu");  
  16. Console.WriteLine("varv1=new{ID=Guid.NewGuid(),Name=\"ZhangSan\"};");  
  17. Console.WriteLine("varv2=new{ID=Guid.NewGuid(),Name=\"LiSi\"};");  
  18. Console.WriteLine("varv3=Utility.Anonymous_GetEmployee(Guid.NewGuid(),\"WangWu\");");  
  19.  
  20. Console.WriteLine("\nv1.GetType()={0}",v1.GetType());  
  21. Console.WriteLine("v2.GetType()={0}",v2.GetType());  
  22. Console.WriteLine("v3.GetType()={0}",v3.GetType());  
  23.  
  24. Console.WriteLine("\nobject.ReferenceEquals(v1.GetType(),v2.GetType())={0}",
    object.ReferenceEquals(v1.GetType(),v2.GetType()));  
  25. Console.WriteLine("object.ReferenceEquals(v1.GetType(),v3.GetType())={0}",
    object.ReferenceEquals(v1.GetType(),v3.GetType()));  
  26.  
  27. Console.WriteLine("\n\n");  
  28.  
  29. varv4=newEmployee{ID=Guid.NewGuid(),Name="ZhangSan"};  
  30. varv5=newEmployee{ID=Guid.NewGuid(),Name="LiSi"};  
  31. varv6=Utility.GetEmployee(Guid.NewGuid(),"WangWu");  
  32. Console.WriteLine("varv4=newEmployee{ID=Guid.NewGuid(),Name=\"ZhangSan\"};");  
  33. Console.WriteLine("varv5=newEmployee{ID=Guid.NewGuid(),Name=\"LiSi\"};");  
  34. Console.WriteLine("varv6=Utility.GetEmployee(Guid.NewGuid(),\"WangWu\");");  
  35.  
  36. Console.WriteLine("\nv4.GetType()={0}",v4.GetType());  
  37. Console.WriteLine("v5.GetType()={0}",v5.GetType());  
  38. Console.WriteLine("v6.GetType()={0}",v6.GetType());  
  39.  
  40. Console.WriteLine("\nobject.ReferenceEquals(v4.GetType(),v5.GetType())={0}",
    object.ReferenceEquals(v4.GetType(),v5.GetType()));  
  41. Console.WriteLine("object.ReferenceEquals(v4.GetType(),v6.GetType())={0}",
    object.ReferenceEquals(v4.GetType(),v6.GetType()));  
  42. }  
  43. }  

代碼不復(fù)雜,我在這里簡(jiǎn)單介紹一下整體的結(jié)構(gòu)。這個(gè)結(jié)構(gòu)分兩部分,第一部分是基于C# Anonymous Type的,另一部分是基于Named Employee Type的。在第一部分中,我首先創(chuàng)建了3個(gè)C# Anonymous Type的Instance:v1、v2和v3(v3是通過(guò)調(diào)用定義在Artech.NewFeatureInCSharp.Library中的Utility獲得,其余兩個(gè)則直接通過(guò)Inline的方式創(chuàng)建),第二部分也具有相同的代碼結(jié)構(gòu)。

【編輯推薦】

  1. 淺析C# ArrayList
  2. C#對(duì)象初始化學(xué)習(xí)總結(jié)
  3. 使用C#正則表達(dá)式匹配相關(guān)字符串
  4. C#改寫方法學(xué)習(xí)筆記
  5. 概述C#加框和消框
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2009-08-17 16:47:51

C# Anonymou

2009-08-17 16:32:34

C# Anonymou

2009-08-14 17:45:52

C# ArrayLis

2009-08-17 18:34:50

C# ChangeCo

2009-08-07 17:25:37

C# SortedLi

2009-08-25 17:59:49

C#入門

2009-08-18 10:30:30

C#枚舉

2009-08-11 14:45:41

C# DataGrid

2009-08-10 14:43:03

C#函數(shù)Convert

2009-09-11 09:15:06

C# get方法

2009-07-31 16:00:30

C#函數(shù)重載

2009-08-06 14:43:10

C# Calculat

2009-08-21 17:24:06

C# SingleIn

2009-08-04 09:30:33

C#調(diào)用ImageAn

2009-08-12 17:03:39

C# Static修飾

2009-08-21 15:57:58

C# DataSour

2009-08-20 10:10:55

C#透明窗體

2009-08-20 16:15:19

C# 匿名方法

2009-08-27 11:43:31

C#語(yǔ)法

2009-07-31 14:03:21

C# Format函數(shù)
點(diǎn)贊
收藏

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