一尘不染

如何在C#中获取对象的小写名称(即使为null)

c#

这个问题已经在这里有了答案

.NET:如何获取空对象的类型? (12个答案)

7年前关闭。

我有C#方法

private static string TypeNameLower(object o)
{
   return o.GetType().Name.ToLower();
}

给我输入对象的小写类型名称。

但是,如果输入是设置为null的字符串或设置为null的可为null的int,则此方法当然会失败。

在这种情况下,如何获取类型名称?


阅读 363

收藏
2020-05-19

共1个答案

一尘不染

杰夫是正确的。这就像在问一个没有标签的空盒子会是什么样的蛋糕。

作为Fortran答案的替代方法,您还可以执行以下操作:

string TypeNameLower<T>(T obj) {
   return typeof(T).Name.ToLower(CultureInfo.InvariantCulture);
}

string TypeNameLower(object obj) {
   if (obj != null) { return obj.GetType().Name.ToLower(CultureInfo.InvariantCulture); }
   else { return null; }
}

string s = null;
TypeNameLower(s); // goes to the generic version

这样,如果C#足够了解您要传入的类型,它将在编译时选择通用类型。

2020-05-19