如何为特定类型添加TypeConverter?

时间:2016-09-19 04:57:12

标签: c# typeconverter

在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。

2 个答案:

答案 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;
}