基于变量的类型转换

DRa*_*app 0 c# comparison casting

我将如何进行以下操作...我有一个可以绑定到不同数据类型的控件... String,Int,Int32,DateTime等...但通常将结果存储到通用"对象"数据中类型.所以,我使用另一个字段来识别EXPECTED类型,例如..

String BoundDataType = "System.String"   // or System.Int32 or date/time, etc.
object ChosenValue;
Run Code Online (Sandbox Code Playgroud)

为了进行比较,我现在必须强制执行预期格式的类型转换,例如

(DataBoundType)ChosenValue == (DataBoundType)TestAgainstThisValue;
Run Code Online (Sandbox Code Playgroud)

我知道我可以放入一个开关,或者每个数据类型使用不同签名的重载函数,但是寻找一种更通用的方法来直接处理.

谢谢

Ant*_*lev 5

你实际上并不需要一个单独的BoundDataType财产 - object.GetType()就足够了.

至于比较,大多数标准类型实现IComparable接口,可用于测试相等性.