簡體   English   中英

在C#中的十進制函數中返回空字符串

[英]Return empty string in decimal function in c#

我創建了一個比較商品價格的函數。 這是我的功能:

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

    }

如果both(price和websiteprice)都等於0.00,則它將返回空字符串,我知道當函數設置為十進制類型時不可能返回該字符串,但是我不知道該怎么辦。 有人可以幫忙嗎? 謝謝。

如果在您的應用程序邏輯中有意義,則可以使用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)

您總是可以返回諸如decimal.MinValue之類的內容,這表明它們都是零價格商品。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM