2016-09-19 46 views
0

在C#中,如果我有一个对象类型的属性,并且知道该对象的类型,那么如何显示该属性的默认TypeConverter?如何为特定类型添加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属性是一个布尔值,我怎么能显示默认的TypeConverter对Value属性一个布尔值?

这是用于PropertyGrid对象的SelectedObject。

回答

0

我已经想出了需要的代码。

这就是:

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

我有一种预感,你可以实现你要找的through the use of Generics效果:

class GenericsExample<T>{ 

    private T _value { get; set; } 
    public T Value 
    { 
     get 
     { 
      return _value; 
     } 
     set 
     { 
      _value = value; 
     } 
    } 

} 

你的类的实例就可以与给定的类型创建(例如布尔)和变量的任何类型可以从你的类返回:

class Program 
{ 

    static void Main() 
    { 
     var genericsExample = new GenericsExample<bool>(); 
     genericsExample.Value = true; 
     Console.WriteLine("Value is " + genericsExample.Value); 
    } 
} 

这是一起什么您要寻找的线路?

+0

https://msdn.microsoft.com/en-us/library/system.componentmodel.booleanconverter(v=vs.110).aspx –

+1

谢谢。我发现了一种简单得多的方法,可以在不使用泛型的情况下执行所需的操作。 – user3736648

相关问题