`

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);

分享到:
评论

相关推荐

    C# Extension(扩展方法)

    C#扩展方法是C#语言中的一个独特特性,它允许我们向现有的类添加新方法,而无需修改原类的源代码。这在很多情况下非常有用,尤其是当我们想要增强已有的.NET框架类的功能时,比如字符串、集合或者DateTime等。下面...

    C# 扩展方法小结

    C# 扩展方法是一种创新的编程特性,首次在C# 3.0中引入,旨在提供了一种向现有类型添加新方法而不必使用继承或封装的技术。这种方式有助于增强代码的可读性和灵活性,同时避免了过度使用继承导致的问题。 在面向...

    CSharpExtensionMethods:我的C#扩展方法

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

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

    C#扩展方法是一种特殊类型的静态方法,它允许我们将新的方法“添加”到现有的非泛型类或结构中,而无需修改原始类型。这种特性使得开发者能够为已有的类型扩展功能,尤其是那些不能或者不应修改的库中的类型,如.NET...

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

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

    C#扩展方法实例分析

    C#扩展方法是C#语言中的一个重要特性,它允许开发者为已存在的类型添加新的方法,而无需修改原类型的源代码。这种设计模式极大地增强了代码的可读性和复用性,尤其是在使用 LINQ(Language Integrated Query)时,...

    C#中的扩展方法详解

    扩展方法是C#编程语言中一个非常实用的特性,它允许开发者向已存在的类型添加新的方法,而无需修改原始类型代码。这为程序员提供了一种灵活性,特别是在处理第三方库或者不能修改的类型时,可以方便地为其增添定制...

    Extand扩展C#类汇总

    综上所述,"Extand扩展C#类汇总"很可能包含了一组实用的C#扩展方法,涵盖了字符串处理、集合操作、类型转换等多个方面,能够极大地提升开发效率。这些方法通常是经过精心设计和优化的,可以很好地融入到各种项目中。...

    C# 常用扩展方法

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

    使用RSA的C#扩展方法

    综上所述,"使用RSA的C#扩展方法"这一主题涉及到C#编程中的非对称加密技术,特别是如何将RSA算法整合到字符串操作中,以便在WebForms、WinForms或ASP.NET等项目中便捷地使用加密功能。通过创建扩展方法,可以使得...

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

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

    如何利用扩展方法来链式的对MVC 3中的页面进行验证

    对于C#扩展方法的使用,我就不细说了,贴段代码说明扩展方法的使用,大家就会回忆起来。 代码如下: public static class Extensions { public static string EndWith(this string str) { return str + “@”; } } ...

    C# 自定义扩展方法

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

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

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

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

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

    c#关于Tolist的扩展方法

    c#关于datatable转list的通用的一种扩展方法的

Global site tag (gtag.js) - Google Analytics