成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析C# Anonymous Type

開發 后端
這里介紹C# Anonymous Type和一般的Named Type并沒有本質的區別。但是話不能太絕對,他們之間還是有一點小小的差異。

C# Anonymous Type和一般的Named Type并沒有本質的區別。但是話不能太絕對,他們之間還是有一點小小的差異。到底是什么樣差異,我在這里先賣一個關子。在具體介紹這個差異的時候,我們先來看看一個Sample:


Artech.NewFeatureInCSharp.Library中定一個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. }  

和一個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中定義了兩個GetEmployee方法,分別返回以Anonymous Type形式和Named Type形式的Employee對象。

  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. }  

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

【編輯推薦】

  1. 淺析C# ArrayList
  2. C#對象初始化學習總結
  3. 使用C#正則表達式匹配相關字符串
  4. C#改寫方法學習筆記
  5. 概述C#加框和消框
責任編輯:佚名 來源: 博客園
相關推薦

2009-08-17 16:32:34

C# Anonymou

2009-08-17 16:47:51

C# Anonymou

2009-08-07 17:25:37

C# SortedLi

2009-08-17 18:34:50

C# ChangeCo

2009-08-14 17:45:52

C# ArrayLis

2009-08-25 17:59:49

C#入門

2009-08-12 15:20:21

C#事件處理

2009-08-17 13:34:02

C#異步操作

2009-08-26 13:07:07

C#交錯數組

2009-08-27 11:43:31

C#語法

2009-09-10 14:52:55

C# get

2009-07-31 14:03:21

C# Format函數

2009-08-14 15:23:10

C#使用ErrorPr

2009-08-20 14:45:13

C# Switch語句

2009-08-10 17:36:17

C#擴展方法

2009-08-20 16:15:19

C# 匿名方法

2009-08-27 13:30:11

C# interfac

2009-08-21 17:24:06

C# SingleIn

2009-08-10 14:43:03

C#函數Convert

2009-09-11 09:15:06

C# get方法
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩福利 | 欧美亚州| 亚洲麻豆 | 国产小视频在线看 | 亚洲乱码一区二区三区在线观看 | 99精品免费久久久久久日本 | 欧美日韩一区二区三区四区 | 亚洲av一级毛片 | 天天操天天舔 | 亚洲综合大片69999 | 国产精品视频导航 | av网站免费| 国产清纯白嫩初高生在线播放视频 | 在线观看特色大片免费网站 | 欧美日韩在线免费 | 日韩成人| 国产91一区 | 亚州成人| 欧美一区二区三区在线看 | 97超碰成人| 91在线免费观看网站 | 另类视频在线 | 精品国产乱码久久久久久图片 | 欧美亚洲一级 | 欧美日韩中文字幕在线播放 | 国产精品一区在线观看 | 色综合久久天天综合网 | 美女久久久 | 91精品导航| 91精品久久久久久久久久入口 | 精品亚洲一区二区 | 久久97精品 | 福利片在线观看 | 成人免费视屏 | 亚洲一区二区三区在线播放 | 一本色道久久综合亚洲精品高清 | 午夜影院在线观看免费 | 在线观看亚洲精品视频 | 亚洲第一在线 | 欧美三级成人理伦 | 久久久精|