2012-03-09 48 views
2

我寫了這個代碼在VB:C#ToShortDateString

expireDate = (DateTime.Parse(decal.DecalExpireDate).ToShortDateString).ToString 

現在我想要寫在C#中相同的代碼,這是我想出了:

expireDate = decal.DecalExpireDate.ToString(); 
expireDate = DateTime.Parse(expireDate).ToShortDateString(); 

有誰知道如何簡化C#代碼,這是一行兩行。這讓我煩惱,我可以用vb在一行中完成,但不能在c#中完成。

decal.DecalExpireDate是我用linq檢索的一個smallDateTime。 EXPIREDATE是我回國的功能

+4

這沒有意義。你爲什麼要在字符串上調用'ToString()'? – SLaks 2012-03-09 19:06:36

回答

1

差不多正是你如何在VB中有一個字符串:

expireDate = DateTime.Parse(decal.DecalExpireDate.ToString()).ToShortDateString(); 
+0

不錯,看起來像是要工作,我試過了,顯然不是。謝謝 – user1202606 2012-03-09 19:36:24

2
expireDate = DateTime.Parse(decal.DecalExpireDate.ToShortDateString()).ToString(); 

或者,更好,

expireDate = decal.DecalExpireDate.Date.ToString(); 
+0

它不喜歡那些,給出錯誤system.nullable 不包含'ToShortDateString'的定義。我已經嘗試過這些。 – user1202606 2012-03-09 19:32:48

+0

然後你需要'.Value'。 – SLaks 2012-03-09 19:33:24

0
var expireDate = DateTime.Parse(decal.DecalExpireDate).ToShortDateString; 
+0

也不喜歡這個,也許它與該領域是可空的有關? – user1202606 2012-03-09 19:34:25

1

無需調用解析在這裏,因爲你開始與一個可空日期時間(根據您的意見)。事實上,如果您在日期爲空時解析日期,則會收到錯誤消息。

這將工作只要貼花到期日期不爲空:

var expireDate = decal.DecalExpireDate.Value.ToShortDateString(); 

更安全,但是,你應該先檢查空:

var expireDate = decal.DecalExpireDate != null ? decal.DecalExpireDate.Value.ToShortDateString() : null; 

你可以閱讀更多關於可空類型在這裏:http://msdn.microsoft.com/en-us/library/2cf62fcy.aspx

相關問題