我在vb中写了这段代码:
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是我在函数
中返回的字符串答案 0 :(得分:2)
expireDate = DateTime.Parse(decal.DecalExpireDate.ToShortDateString()).ToString();
或者,更好的是,
expireDate = decal.DecalExpireDate.Date.ToString();
答案 1 :(得分:1)
几乎就是你在VB中的表现:
expireDate = DateTime.Parse(decal.DecalExpireDate.ToString()).ToShortDateString();
答案 2 :(得分:1)
没有必要在这里调用Parse,因为你从一个可以为空的DateTime开始(根据你的评论)。实际上,如果您尝试在日期为空时解析日期,则会收到错误消息。
只要贴花到期日期不为空,这将有效:
var expireDate = decal.DecalExpireDate.Value.ToShortDateString();
为了更安全,您应首先检查null:
var expireDate = decal.DecalExpireDate != null ? decal.DecalExpireDate.Value.ToShortDateString() : null;
您可以在此处详细了解可空类型:http://msdn.microsoft.com/en-us/library/2cf62fcy.aspx。
答案 3 :(得分:0)
var expireDate = DateTime.Parse(decal.DecalExpireDate).ToShortDateString;
答案 4 :(得分:0)
SmallDateTime应该已经作为DateTime格式返回(SQL-CLR Type Mapping (LINQ to SQL))。
应该如此简单:
expireDate = decal.DecalExpireDate.ToShortDateString();