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

Not*_*ing 0 c# asp.net asp.net-mvc linq-to-sql

我创建了一个函数来比较我的项目的价格.这是我的功能:

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;
        }

    }
Run Code Online (Sandbox Code Playgroud)

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

Fra*_*oto 6

如果它在您的应用程序逻辑中有意义,您可以使用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;
        }

    }
Run Code Online (Sandbox Code Playgroud)

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