c# - 向现有类添加属性

标签 c# properties

我有一个用于实现某些属性的私有(private)类。因此,我没有能力修改实际的私有(private)类,也不想使用继承来创建我自己的类来代替它。有没有一种方法可以向该私有(private)类添加属性?

谢谢!

最佳答案

如果您可以访问所需类中的数据,并且可以使用方法而不是属性,请查看 extension methods ,在 C# 3.0 中引入。从那篇文章中,这里有一个扩展方法添加到(密封的,不可修改的)String 类:

public static class MyExtensions
{
   public static int WordCount(this String str)
   {
       return str.Split(new char[] { ' ', '.', '?' }, 
                        StringSplitOptions.RemoveEmptyEntries).Length;
   }
}   

来自 the horse's mouth ,扩展属性可能会在未来的 C# 版本中出现。

如果您需要访问私有(private)字段或方法,这将无济于事。在这种情况下,您可能会研究反射(reflection),但我建议您远离它,除非确实有必要 - 它有时会变得困惑。

关于c# - 向现有类添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3810488/

相关文章:

javascript while循环正确迭代但具有相同逻辑的for循环不是,在具有整数值和其中一些空值的数组上

c++ - Qt 列出类的属性

properties - xamarin.forms 中自定义控件的 HeightRequest 的自定义 BindableProperty

java - Jar 和文件 I/O

c# - 处理在辅助线程过程中发生的未处理错误

c# - 使用 List<Person> Distinct() 返回 2 个值

c# - 文本框中文本的消失和重新出现

c# - 为什么在类属性中没有复杂逻辑被认为是最佳实践?

java - 转储 java 对象的属性

c# - 多个操作的并行化和结果的连接