如何为特定类型添加TypeConverter

本文关键字:类型 添加 TypeConverter | 更新日期: 2023-09-27 18:07:37

在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

如何为特定类型添加TypeConverter

我已经计算出所需的代码。

在这里:

public TypeConverter GetValueTypeConverter()
{
    TypeConverter typeConverter = TypeDescriptor.GetConverter(_valueType);
    return typeConverter;
}

我有一种预感,你可以通过使用泛型来实现你正在寻找的效果:

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);
    }
}

这是你想要的吗?