2011-12-14 87 views
0

我創建了一個函數來比較我的物品的價格。 這是我的函數:在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; 
     } 

    } 

如果兩者(價格和websiteprice)等於0.00,那麼它將返回空字符串,我知道這是不可能返回字符串,而功能設置爲十進制類型,但我不知道該怎麼做。任何人都可以幫忙謝謝。

回答

6

如果它是有道理的應用程序中的邏輯,你可以使用Nullable類型,並使用null而不是空字符串。像:

​​

或者使用Decimal.MinValue作爲無效標誌。 (我更喜歡null,就是如果這實際上是你的邏輯中有效的值)。

1

您可以隨時返回類似於decimal.MinValue的東西,這表明它們都是零價格項目。

2

爲什麼不簡單返回0.0 當然,當兩個值都是0.0 ..返回0.0是有意義的。

+0

umm ...如果我返回0.0,那麼我必須在我的視圖中再次測試,如果返回值= 0.0,則顯示空字符串。因爲所有項目都不應顯示其價格= 0.0。 – Nothing 2011-12-14 02:33:11

+0

考慮使用anthony和Francisco建議的可空類型。 – Tabish 2011-12-14 02:42:01

2

C#已經有一段時間了nullable types現在,試試定義你的方法是這樣和有問題的情況下返回null:

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

+0

+1使用標準的方式來實現此功能。 – 2011-12-14 02:31:51

相關問題