来自系统的无效Cast.十进制为MyType
本文关键字:十进制 MyType Cast 无效 系统 | 更新日期: 2023-09-27 18:15:32
我在c#中创建了MyType(struct)
,用于在DevExpress GridControl组件中显示数据。
当编辑该字段时,我得到标题中提到的错误。然而,我已经为该类型添加了隐式和显式方法,允许我做以下事情:
MyType x = 45;
MyType x = "45"; ...
我能做些什么来修复这个错误?该错误是否与不适当的DevExpress设置有关?
您需要添加另一个隐式操作符重载来实现您的目标。提供保存双精度对象的内部值命名为internalValue
,例如:
public static implicit operator MyType (double dblValue)
{
MyType myType = new MyType();
myType.internalValue = dblValue as double;
if (myType.internalValue == default(double))
myType.internalValue = System.Convert.ToDouble(dblValue);
return myType;
}
我认为问题是可能涉及到一些框
//Works
decimal d = 12.5;
myType m = d;
//Does not work
object o = d;
myType m2 = o;