【发布时间】:2013-07-11 01:47:07
【问题描述】:
在 C# 中是否可以通过添加属性而不是仅添加函数来扩展类。例如:我有一个我依赖的标准 DLL 库,而供应商不想修改它。
在整个代码中,我已经广泛使用了 DataCell 类,直到现在才意识到我需要向它添加一个额外的属性,因为创建一个从该类继承的新扩展类看起来并不像它可以工作 + 一个很多重写。
DataCell [元数据]
public class DataCell : Message
{
public int Field1;
public int Field2;
public DataCell()
{
..
}
..
}
基本上我想添加一个 public int Flags;到这堂课。所以我现在可以不用重写任何东西,(new DataCell).Flags = 0x10;
【问题讨论】:
-
你不能有扩展属性,但你可以继承一个类并添加属性
-
在这种情况下,“扩展”是什么意思?你有源代码吗?或者你想使用扩展属性(你不能)?还是从 DataCell 继承好吗?
-
通过扩展我的意思是这个类在我正在使用的供应商 .dll 库中大量使用。像 ExtDataCell 一样创建:DataCell 不是一个选项,因为我基本上需要重写 .dll 库。所以我希望以某种方式能够做到这一点,以便供应商.dll 中的 DataCell 可以拥有它没有 atm 的属性标志。 (不修改供应商 dll)