English 中文(简体)
C# Nullable<Datetime> tostring
原标题:C# Nullable<DateTime> to string
  • 时间:2009-09-18 17:06:55
  •  标签:

我有<代码>Datetime?,有时价值为null,当价值为null>时,我如何回去一条空洞的<代码><<>>>><0ll?

最佳回答
string date = myVariable.HasValue ? myVariable.Value.ToString() : string.Empty;
问题回答

虽然其中许多答案是正确的,但所有这些答案都是不必要的复杂。 如果价值从逻辑上说是无效的,则要求确定一个失效日期的结果已经是空洞的。 只是要求了解你的价值;你将做你想要的。

实际上,这是无法弥补的类型违约的行为,如果没有价值,它们就没有回报:

public class Test {
    public static void Main() {
        System.DateTime? dt = null;
        System.Console.WriteLine("<{0}>", dt.ToString());
        dt = System.DateTime.Now;
        System.Console.WriteLine("<{0}>", dt.ToString());
    }
}

这一结果

<>
<2009-09-18 19:16:09>

电话.ToString() on a Nullable<T>null

您可以撰写延伸方法

public static string ToStringSafe(this DateTime? t) {
  return t.HasValue ? t.Value.ToString() : String.Empty;
}

...
var str = myVariable.ToStringSafe();

你们都需要做的是仅仅打上<代码>。 它处理<代码>Nullable<T> Object for null<>code>。

此处为,Nullable<T>ToString (:

public override string ToString() {
    return hasValue ? value.ToString() : "";
}
DateTime? d;
// stuff manipulating d;
return d != null ? d.Value.ToString() : String.Empty;
DateTime d?;
string s = d.HasValue ? d.ToString() : string.Empty;
DateTime? MyNullableDT;
....
if (MyNullableDT.HasValue)
{
    return MyNullableDT.Value.ToString();
}
return "";
if (aDate.HasValue)
    return aDate;
else
    return string.Empty;

http://learn.microsoft.com/en-us/dotnet/api/system.nullable-1.tostring?view=netframework-4.8”rel=“nofollow noreferer” 微软文件:

如果HasValue财产是真实的,或如果HasValue财产是假的空洞(“”),则该文本代表了现有可赔物品的价值。





相关问题