gpt4 book ai didi

c# - SEHException .net 难题

转载 作者:太空狗 更新时间:2023-10-29 23:53:01 25 4
gpt4 key购买 nike

谁能解释为什么下面的代码会抛出错误。通过将 -1 值转换为小数 (-1M)、将运算符重载更改为接受 int 或不使用可为 null 的对象,可以轻松解决此问题。

我注意到错误不会仅在 VS2010 和 VS2008 中引发。

class Program
{
static void Main(string[] args)
{
var o1 = new MyObject?(new MyObject(2.34M));
o1 *= -1;
}
}

public struct MyObject
{
public MyObject(Decimal myValue)
{
this.myValue = myValue;
}

private Decimal myValue;

public static MyObject operator *(MyObject value1, decimal value2)
{
value1.myValue *= value2;
return value1;
}
}

最佳答案

给定的代码片段没有重现。但是,您使用的代码非常类似于因 C# 编译器中的旧错误而失败的代码。详情在this thread , Eric Lippert 已经意识到这一点。

关于c# - SEHException .net 难题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5475831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com