欢迎加我的QQ群:193522571,一起来讨论、交流!

LinQ 定义带有返回类型的扩展方法3.2

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Diagnostics;

namespace ExtensionWithReturn
{
    class Program
    {
        static void Main(string[] args)
        {
            var songs = new
            {
                Artist = "Green Day",
                Song = "Wake Me Up When September Ends"
            };
            Console.WriteLine(songs.Dump());
            Console.ReadLine();
        }
    }
    public static class Dumper
    {
        public static string Dump(this Object o)
        {
            PropertyInfo[] properties = o.GetType().GetProperties();
            StringBuilder builder = new StringBuilder();
            foreach (PropertyInfo p in properties)
            {
                try
                {
                    builder.AppendFormat(string.Format("Name: {0}, Value: {1}", p.Name, p.GetValue(o, null)));
                }
                catch
                {
                    builder.AppendFormat(string.Format("Name: {0}, Value: {1}", p.Name, "unk."));
                }
                builder.AppendLine();
            }
            return builder.ToString();
        }
    }
}

 

posted @ 2014-07-12 19:18  swtool  阅读(450)  评论(0编辑  收藏  举报
欢迎加我的QQ群:193522571,一起来讨论、交流!