C# 使用“时出现奇怪错误”;“双.南”;及;double.MaxValue“;在c中#

C# 使用“时出现奇怪错误”;“双.南”;及;double.MaxValue“;在c中#,c#,c#-3.0,crash,double,C#,C# 3.0,Crash,Double,我的代码中有一个函数,如(C#,NET3.5,VisualStudio2008): 此函数由主类调用,如下所示: ... double res = o.CalculateSomething(); ... 虽然它看起来不可思议(对我来说是),而且只有在某些计算机上(仅在60台计算机中的2台计算机上)没有任何特殊功能(WinXP SP3),但如果我使用“别名”(double.NaN或double.MaxValue),当程序调用“CalculateMething”时,程序将在没有任何错误屏幕的情况下

我的代码中有一个函数,如(C#,NET3.5,VisualStudio2008):

此函数由主类调用,如下所示:

...
double res = o.CalculateSomething();
...
虽然它看起来不可思议(对我来说是),而且只有在某些计算机上(仅在60台计算机中的2台计算机上)没有任何特殊功能(WinXP SP3),但如果我使用“别名”(double.NaN或double.MaxValue),当程序调用“CalculateMething”时,程序将在没有任何错误屏幕的情况下被破坏,然而,如果你指定了一个特定的值,它就可以完美地工作

我的意思是:

public double function CalculateSomething()
{
   ...
   double a = double.NaN; // FAAAAIL!!!!
   double b = -99999; // OK... 
   ...
}

虽然我做了改变,这个程序可以在所有计算机上运行,但我有好奇心。有人知道会发生什么吗?。谢谢。

好的,我发现了问题:

  • 我安装了NET4.0,但程序需要NET3.5。我安装了NET3.5,它运行正常
真的,这是我见过的最稀有的东西


谢谢大家的回复。

好的,我发现了问题:

  • 我安装了NET4.0,但程序需要NET3.5。我安装了NET3.5,它运行正常
真的,这是我见过的最稀有的东西


谢谢大家的回复。

您是否检查了错误是否被抑制?您是否在每台机器上测试了编译版本或重建的程序?可能编译器选项不同。所谓“断开而不出现任何错误屏幕”是否意味着它只是退出?Double.Nan可能会导致FPU异常。这不应在普通CLR主机中发生,但可以运行非托管代码来更改FPU控制字并取消异常的屏蔽。这仍然会发出响亮的声音,请确认您没有接受未处理的异常。另一个选项是这些计算机禁用了默认调试器,以便您不会看到错误。尝试在其上安装vs(或将调试器替换回drwatson)。希望有帮助。你检查过错误是否被抑制了吗?你在每台机器上测试过编译的版本或重建的程序吗?可能编译器选项不同。所谓“断开而不出现任何错误屏幕”是否意味着它只是退出?Double.Nan可能会导致FPU异常。这不应在普通CLR主机中发生,但可以运行非托管代码来更改FPU控制字并取消异常的屏蔽。这仍然会发出响亮的声音,请确认您没有接受未处理的异常。另一个选项是这些计算机禁用了默认调试器,以便您不会看到错误。尝试在其上安装vs(或将调试器替换回drwatson)。希望有帮助。
public double function CalculateSomething()
{
   ...
   double a = double.NaN; // FAAAAIL!!!!
   double b = -99999; // OK... 
   ...
}