繁体   English   中英

如何将可为空的 int 转换为字符串

[英]How to convert nullable int to string

我需要将可为空的 int 转换为字符串

int? a = null;
string str = a.ToString();

我如何才能毫无例外地执行此操作? 我需要将字符串设为“Null”。 请指导我。

您可以简单地使用Convert.ToString()来处理空值并且不会抛出异常

string str = Convert.ToString(a)

或者使用if条件

if(a.HasValue)
{
  string str = a.Value.ToString();
}

或使用? 三元运算符

string str = a.HasValue ? a.Value.ToString() : string.Empty;

如果您真的需要字符串为“Null”,如果anull

string str = a.HasValue ? a.Value.ToString() : "Null";

我也会创建一个扩展方法,但将其键入为 Nullable 而不是任何 T。

public static string ToStringOrEmpty<T>(this T? t) where T : struct
{
    return t.HasValue ? t.Value.ToString() : string.Empty;
}

// usage
int? a = null;
long? b = 123;

Console.WriteLine(a.ToStringOrEmpty()); // prints nothing
Console.WriteLine(b.ToStringOrEmpty()); // prints "123"

我喜欢为此创建一个扩展方法,因为我最终会一遍又一遍地这样做

public static string ToStringNullSafe<T>(this T value)
{
  if(value == null)
  {
    return null;
  }
  else
  {
     return value.ToString();
  }
}

如果您愿意,您显然可以使用格式字符串创建重载。

if(a.HasValue())
{
   return a.Value().ToString();
}
return string.Empty;

最短的答案是:

int? a = null;
string aString = a?.ToString() ?? "null";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM