返回c#十进制函数中的空字符串

本文关键字:字符串 函数 十进制 返回 | 更新日期: 2023-09-27 18:17:41

我创建一个函数来比较我的商品的价格。这是我的功能:

public static decimal ComparePrice(decimal Price, decimal WebsitePrice)
    {
        decimal ZERO_PRICE = 0.00000M;
        if(Price == ZERO_PRICE && WebsitePrice > ZERO_PRICE){
            return WebsitePrice;
        }else if(Price == ZERO_PRICE && WebsitePrice == ZERO_PRICE){
            return "";
        }else{
            return Price;
        }
    }

如果两者(price和websiteprice)等于0.00,那么它将返回空字符串,我知道当函数设置为十进制类型时不可能返回字符串,但我不知道我应该怎么做。有人能帮忙吗?谢谢。

返回c#十进制函数中的空字符串

如果它在您的应用程序逻辑中有意义,您可以使用Nullable类型并使用null而不是空字符串。如:

public static decimal? ComparePrice(decimal Price, decimal WebsitePrice)
    {
        if(Price == decimal.Zero && WebsitePrice > decimal.Zero){
            return WebsitePrice;
        }else if(Price == decimal.Zero && WebsitePrice == decimal.Zero){
            return null;
        }else{
            return Price;
        }
    }

或者使用Decimal。MinValue作为无效的标志。(我更喜欢null,再次,如果这实际上是一个有效值在你的逻辑)。

为什么不返回简单的0.0呢当然,当两个值都是0.0时…返回0.0是有意义的

c#有可空类型已经有一段时间了,尝试这样定义你的方法,并为有问题的情况返回null:

public static decimal? ComparePrice(decimal Price, decimal WebsitePrice)

总是可以返回十进制之类的值。