在C#中,如果我有一个object类型的属性,并且我知道对象的类型,我该如何显示该属性的默认TypeConverter?
以下是一些代码:
private Type _valueType { get; set; }
public Type ValueType
{
get
{
return _valueType;
}
set
{
_valueType = value;
}
}
private object _value { get; set; }
public object Value
{
get
{
return _value;
}
set
{
_value = value;
}
}
在上面的代码中,如果ValueType属性是bool,如何在Value属性上显示bool的默认TypeConverter?
这是针对PropertyGrid对象的SelectedObject。
答案 0 :(得分:0)
我有预感,你可以达到你正在寻找http://www.orafaq.com/node/854的效果:
class GenericsExample<T>{
private T _value { get; set; }
public T Value
{
get
{
return _value;
}
set
{
_value = value;
}
}
}
然后可以使用给定类型(例如bool)创建类的实例,并且可以从类中返回任何类型的变量:
class Program
{
static void Main()
{
var genericsExample = new GenericsExample<bool>();
genericsExample.Value = true;
Console.WriteLine("Value is " + genericsExample.Value);
}
}
这是否与您所寻找的一致?
答案 1 :(得分:0)
我已经找到了所需的代码。
这是:
public TypeConverter GetValueTypeConverter()
{
TypeConverter typeConverter = TypeDescriptor.GetConverter(_valueType);
return typeConverter;
}