我将如何进行以下操作...我有一个可以绑定到不同数据类型的控件... String,Int,Int32,DateTime等...但通常将结果存储到通用中“对象“数据类型。所以,我使用另一个字段来识别EXPECTED类型,例如..
String BoundDataType = "System.String" // or System.Int32 or date/time, etc.
object ChosenValue;
为了进行比较,我现在必须强制执行预期格式的类型转换,例如
(DataBoundType)ChosenValue == (DataBoundType)TestAgainstThisValue;
我知道我可以放入一个开关,或者每种数据类型使用不同签名的重载函数,但是寻找一种更通用的方法来直接处理。
由于
答案 0 :(得分:5)
您实际上并不需要单独的BoundDataType
属性 - object.GetType()
就足够了。
至于比较,大多数标准类型实现IComparable接口,可用于测试相等性。
答案 1 :(得分:0)
使用System.ComponentModel.TypeConverter
- 类
答案 2 :(得分:0)
尝试
TestAgainstThisValue.GetType()
获取变量的类型
答案 3 :(得分:0)
您可以使用object.GetType()来获取变量的类型。
然后您可以使用Convert.ChangeType(object,type)进行转换。
object conv = Convert.ChangeType(ChosenValue,ChosenValue.GetType());
这应该有效。