Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从System.Decimal到MyType的强制转换无效_C#_.net_Devexpress - Fatal编程技术网

C# 从System.Decimal到MyType的强制转换无效

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

我在C#中创建了
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无关,它与代码中未处理的情况有关。