2016-09-19 88 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

相關問題