我在C#中创建了MyType(struct)
,用于在DevExpress GridControl组件中显示数据。
编辑该字段时,我收到标题中提到的错误。 但是我在该类型中添加了隐式和显式方法,这些方法允许我执行以下操作:
MyType x = 45;
MyType x = "45"; ...
我该怎么做才能解决这个错误?该错误是否与不恰当的DevExpress设置有关?
答案 0 :(得分:2)
您需要添加另一个隐式运算符重载来实现您的目标。
提供保存double的内部值名为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;
}
答案 1 :(得分:0)
我认为问题在于可能会涉及一些拳击
//Works
decimal d = 12.5;
myType m = d;
//Does not work
object o = d;
myType m2 = o;