`

C#扩展方法

    博客分类:
  • C#
 
阅读更多

扩展方法:ToString()

public static class ObjectUnits

    {

        public static string ToString(this object obj, string format)

        {

            Type type = obj.GetType();

            PropertyInfo[] properties = type.GetProperties(

                BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance);

 

            MatchEvaluator evaluator = match =>

            {

                string propertyName = match.Groups["Name"].Value;

                string propertyFormat = match.Groups["Format"].Value;

 

                PropertyInfo propertyInfo = properties.FirstOrDefault(p => p.Name == propertyName);

                if (propertyInfo != null)

                {

                    object propertyValue = propertyInfo.GetValue(obj, null);

                    if (string.IsNullOrEmpty(propertyFormat) == false)

                        return string.Format("{0:" + propertyFormat + "}", propertyValue);

                    else return propertyValue.ToString();

                }

                else return match.Value;

            };

            string pattern = @"\[(?<Name>[^\[\]:]+)(\s*:\s*(?<Format>[^\[\]:]+))?\]";

            return Regex.Replace(format, pattern, evaluator, RegexOptions.Compiled);

        }

    }

 

调用: var p = new Person {Name="test",Sex="man"};

            string str = p.ToString("Person : Name : [Name] _ Sex : [Sex]");

            Console.WriteLine(str);

分享到:
评论

相关推荐

    CSharpExtensionMethods:我的C#扩展方法

    C#扩展方法我的集合和POCO对象的C#扩展方法。 享受! :collision:您可以通过安装所有它们 :hammer:或最小包装。或必备包(首选)。目录:集合扩展方法(命名空间-Pylypeiev.Extensions):POCO扩展方法(名称空间-...

    C# Extension(扩展方法)

    C# Extension(扩展方法),LinqExtensions、类型转换扩展、日期时间扩展、格式化扩展、验证扩展、可空类型

    详解C#扩展方法原理及其使用

    主要介绍了C#扩展方法原理及其使用的的相关资料,文中代码非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下

    Z.ExtensionMethods, C# 扩展方法|. NET 开放源代码&免费库.zip

    Z.ExtensionMethods, C# 扩展方法|. NET 开放源代码&免费库 使用超过 1000种扩展方法,增强了. NET 架构。下载完整版本 NuGetZ.ExtensionMethods ( 推荐推荐) Z.ExtensionMethods.WithObjectNamespace

    C#扩展方法实例分析

    本文实例讲述了C#扩展方法。分享给大家供大家参考,具体如下: 扩展方法 扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但...

    C# 常用扩展方法

    开发日常使用帮助类扩展方法,仅供学习使用。。直接引用扩展使用

    c#中的扩展方法学习笔记

    最近在看王清培前辈的.NET框架设计时,当中有提到扩展方法 . 开头的一句话是:扩展方法是让我们在不改变类原有代码的情况下动态地添加方法的方式,这给面向对象设计 模块设计带来了质的提升 很明显,扩展方法在框架设计...

    C#中的扩展方法详解

    “扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。”这是msdn上说的,也就是你可以对String,Int,DataRow,DataTable等这些类型的基础上增加一个或多个方法,...

    C# 自定义扩展方法

    public static DataView AsDataView(this DataTable table, string selectText)

    天鹅:天鹅代表我们都需要的东西。 Unosquare的C#扩展方法和类的集合

    SWAN:我们都需要的东西(Unosquare的C#扩展方法和类的集合) :star: 如果您觉得该项目有用,请加注星标! SWAN代表我们都需要的东西 重复代码和重新发明轮子通常被认为是不好的做法。 在我们致力于提供精美的...

    C#获取并修改文件扩展名的方法

    本文实例讲述了C#获取并修改文件扩展名的方法。分享给大家供大家参考。具体分析如下: 这里使用C#编程的方法改变文件扩展名的文件,必须使用Path类。 Path类用来解析文件系统路径的各个部分。静态方法Path....

    简单介绍C# 中的扩展方法

    扩展方法是C#3.0引入的新特性,使用它,可以在不修改某一类的代码的情况下,实现该类方法的扩展。  为一个类添加扩展方法,需要三个要素:  1.扩展方法所在的类为静态类  2.扩展方法本身要为静态方法  3.扩展...

    C# 扩展方法小结

    主要介绍了C#的扩展方法的相关资料,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下

    C#扩展string类型方法

    C#扩展string类型方法,查找该字符串中含有另一个字符串的个数

    csharp-extensions:实用程序C#扩展方法的集合

    实用程序C#扩展方法的集合。 主要: 开发人员: 主要: 开发人员: nuget: Install-Package rm.Extensions 字符串扩展名: var s = " " ; if ( s . IsNullOrEmpty ()) { /**/ } if ( s . IsNullOrWhiteSpace ...

    c#代码控制扩展屏

    用c#代码来控制扩展屏,可以选择方向旋转,方便了扩展屏对于用户的使用;

    C#解析XML入门级别的实例代码

    实现C#各种情况下 解析XML文件 不要在为解析XML文件发愁了。

Global site tag (gtag.js) - Google Analytics