我在C#中创建了MyType(struct)
,用于在DevExpress GridControl组件中显示数据。从System.Decimal转换为MyType无效
编辑该字段时,出现标题中提到的错误。 不过我已经加入隐性和显性的方法来该类型允许我做一些事情,如:
MyType x = 45;
MyType x = "45"; ...
我能做些什么来解决这个错误?该错误是否与不适当的DevExpress设置相关联?
我在C#中创建了MyType(struct)
,用于在DevExpress GridControl组件中显示数据。从System.Decimal转换为MyType无效
编辑该字段时,出现标题中提到的错误。 不过我已经加入隐性和显性的方法来该类型允许我做一些事情,如:
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? – Anthony
不,错误与DevExpress无关,它与您在代码中未处理的情况有关。 –