您的位置:首页 > 移动开发 > Objective-C

代码练习在 C# 中得到一个 object (包含匿名对象)的属性和属性值

2012-09-02 20:17 766 查看
代码能说明一切:

using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace DearBruce.ConAppTest { enum Color     {         Red,         Green,         Blue     }
struct KeyValuePair<TKey, TValue>     { public TKey Key { get; set; }
public TValue Value { get; set; }     }
class Student     { public Guid Id { get; set; }
public string Name { get; set; }
public DateTime Birthday { get; set; }     }
class Program     { static void Main(string[] args)         { string[] items = new string[]             {                 AnonymousObject.Inspect(null), // (null)                AnonymousObject.Inspect(new {}), // no properties                AnonymousObject.Inspect(new                  {                      Id = Guid.NewGuid(),                      Name = "张三",  Birthday = new DateTime(1987,5,6)                  }),     // { Id: 2117c3cf-f99c-4636-9390-900fea0c085d, Name: 张三, Birthday: 1987/5/6 0:00:00 }                AnonymousObject.Inspect(Color.Red), // no properties                AnonymousObject.Inspect( new KeyValuePair<Guid, string>()                  {                      Key = Guid.NewGuid(),                      Value = "HelloWorld"                  }),    // { Key: 67faae54-b6bd-4702-9175-54f6291a7199, Value: HelloWorld }                AnonymousObject.Inspect( new Student                  {                      Id = Guid.NewGuid(),                      Name = "张三",  Birthday = new DateTime(1987, 5, 6)                 })   // { Id: 8e189b10-0702-4927-8f65-81c86dcc33bd, Name: 张三, Birthday: 1987/5/6 0:00:00 }            };             CommonHelper.Show(items);         }     }
public static class AnonymousObject     { public static string Inspect(object obj)         { if (obj == null)             { return "(null)";             }
object[] args = Enumerable.Empty<Object>().ToArray();             IEnumerable<string> values = obj.GetType()                                             .GetProperties()                                             .Select(prop => String.Format("{0}: {1}", prop.Name, prop.GetValue(obj, args)));
if (!values.Any())             { return "(no properties)";             }
return "{ " + values.Aggregate((left, right) => left + ", " + right) + " }";         }     } }


运行截图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐