C# 从System.Decimal到MyType的强制转换无效
我在C#中创建了C# 从System.Decimal到MyType的强制转换无效,c#,.net,devexpress,C#,.net,Devexpress,我在C#中创建了MyType(struct),用于在DevExpress GridControl组件中显示数据 编辑该字段时,我得到标题中提到的错误。 但是,我向该类型添加了隐式和显式方法,允许我执行以下操作: MyType x = 45; MyType x = "45"; ... 我可以做些什么来修复该错误?该错误是否与不适当的DevExpress设置有关?我认为问题在于可能涉及一些装箱问题 //Works decimal d = 12.5; myType m = d; //Does no
MyType(struct)
,用于在DevExpress GridControl组件中显示数据
编辑该字段时,我得到标题中提到的错误。
但是,我向该类型添加了隐式和显式方法,允许我执行以下操作:
MyType x = 45;
MyType x = "45"; ...
我可以做些什么来修复该错误?该错误是否与不适当的DevExpress设置有关?我认为问题在于可能涉及一些装箱问题
//Works
decimal d = 12.5;
myType m = d;
//Does not work
object o = d;
myType m2 = o;
您需要添加另一个隐式操作符重载来实现您的目标。 例如,将持有双精度的内部值命名为
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;
}
你能发布你的操作符重载吗?您是否明确允许从System.Decimal转换为MyType?否,错误与DevXPress无关,它与代码中未处理的情况有关。