2011-11-21 90 views
1

我在C#中创建了MyType(struct),用于在DevExpress GridControl组件中显示数据。从System.Decimal转换为MyType无效

编辑该字段时,出现标题中提到的错误。 不过我已经加入隐性和显性的方法来该类型允许我做一些事情,如:

MyType x = 45; 
MyType x = "45"; ... 

我能做些什么来解决这个错误?该错误是否与不适当的DevExpress设置相关联?

+1

你可以发表你的运算符重载?你是否明确允许从System.Decimal强制转换为MyType? – Anthony

+0

不,错误与DevExpress无关,它与您在代码中未处理的情况有关。 –

回答

0

我认为问题是,有可能是一些拳击参与

//Works 
decimal d = 12.5; 
myType m = d; 

//Does not work 
object o = d; 
myType m2 = o; 
2

您将需要添加另一个隐含的运算符重载实现自己的目标。 提供内部值保持你的双名为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; 
} 
相关问题