我必须在运行时设置一些属性,但我遇到的问题是一些属性有5个设置而另一个可能有3或4.有没有办法我可以创建一个可以容纳任意数量的通用类一个属性的设置,而不必写多个类?
一个例子是我有一个名为Color
的属性,唯一的设置是Color
,但在另一个场景中,我有一个名为Mask
的属性,其设置为{ {1}}和MaskType
答案 0 :(得分:2)
您可能想看看ExpandoObject。它允许您动态添加属性及其值,但它确实需要.NET 4或更高版本。
答案 1 :(得分:2)
这是一个经典之作,解决方案实际上取决于您希望如何访问您的房产 在ASP.NET中,缓存使用类似于:
的内容public class Cache
{
private Dictionary<string, object> CachedValues;
public object this [string arg]
{
get
{
return CachedValues[arg];
}
}
}
或者您可以使用Tuple<T1, T2, T3...>
或者您可以使用dynamic
和匿名类型
答案 2 :(得分:1)
我认为编写代表你个人对象的单个类总是更好。在我看来,你只会在编写泛型类时产生更多问题。或许可以查看Factory或Adapter模式,以确定在不同场景中使用哪些类。