C# C中发布和调试的不同类型#

C# C中发布和调试的不同类型#,c#,C#,我有一些使用浮动的性能/内存关键代码。在调试模式下,我喜欢使用小数,因为它更容易验证计算是否正确 显然,我可以做到: #if DEBUG decimal x; #else float x; #endif 然而,这需要在许多地方进行,而且似乎有点麻烦。我想知道有没有更好的办法?我不能根据构建设置创建自己的类型,因为它们是密封的类。正如我之前所说的,我也不想选择左、右和中锋,这是性能关键 我基本上想说 #if DEBUG MyType = decim

我有一些使用浮动的性能/内存关键代码。在调试模式下,我喜欢使用小数,因为它更容易验证计算是否正确

显然,我可以做到:

#if DEBUG
        decimal x;
#else
        float x;
#endif
然而,这需要在许多地方进行,而且似乎有点麻烦。我想知道有没有更好的办法?我不能根据构建设置创建自己的类型,因为它们是密封的类。正如我之前所说的,我也不想选择左、右和中锋,这是性能关键

我基本上想说

#if DEBUG
        MyType = decimal;
#else
        MyType = float;
#endif

MyType x;
如有任何建议,将不胜感激

using System;
#if DEBUG
using MyType = System.Decimal;
#else
//Float
using MyType = System.Single;
#endif
您可以使用
using
关键字定义任何类型并使用它:

MyType x = 19.2;
MyType y = 19.2;
MyType d = x + y;

在发布模式下,您将很难找到bug。特别是,如果在财务计算中使用
x
。此外,为调试模式创建的单元测试不适用于发布模式。在调试和发布之间使用行为如此不同的类型似乎是一个非常糟糕的主意。正如@PLB所暗示的,在开发代码和发布代码之间有根本性的区别是一个糟糕的主意。如果我担心发布模式下的计算精度,我肯定不会使用浮动。如上所述,内存和性能至关重要。如果我能在一个地方建立一种定义类型的方法,那么如果我愿意的话,我很容易在调试模式下切换到float。因为这是一个using子句,我假设我需要将它添加到每个单元的顶部?理想情况下,我希望能够在一个地方有一个单一的定义。是的,没错,你应该在每个文件中使用你自己的类型。谢谢你,这不是我所希望的,但比我可能的选择更好。