C#有扩展属性吗?
例如,我可以添加一个扩展属性来DateTimeFormatInfo
调用ShortDateLongTimeFormat
哪个会返回ShortDatePattern + " " + LongTimePattern
?
以前,我有一个包含内部System.Collections.Generic.List<Item>
的类(其中Item是我创建的类).包装器类提供了几个集合级属性,这些属性提供了列表中项目的总计,平均值和其他计算.我正在创建一个BindingSource
围绕这个包装List<>
和另一个BindingSource
围绕我的类,并能够通过第一个BindingSource
和包装类的集合级属性使用第二个来获取包装列表中的Items .
一个简化的例子如下:
public class OldClass()
{
private List<Item> _Items;
public OldClass()
{
_Items = new List<Item>();
}
public List<Item> Items { get { return _Items; } }
// collection-level properties
public float AverageValue { get { return Average() } }
public float TotalValue { get { return Total() } }
// ... other properties like this
}
Run Code Online (Sandbox Code Playgroud)
使用以这种方式创建的绑定源:
_itemsBindingSource = new BindingSource(oldClass.Items);
_summaryBindingSource = new BindingSource(oldClass);
Run Code Online (Sandbox Code Playgroud)
最近,我尝试将此类更改为派生System.Collections.Generic.List<Item>
而不是保留包装 …