这个问题已经在这里有了答案 :
.NET:如何获取空对象的类型? (12个答案)
7年前关闭。
我有C#方法
private static string TypeNameLower(object o) { return o.GetType().Name.ToLower(); }
给我输入对象的小写类型名称。
但是,如果输入是设置为null的字符串或设置为null的可为null的int,则此方法当然会失败。
在这种情况下,如何获取类型名称?
杰夫是正确的。这就像在问一个没有标签的空盒子会是什么样的蛋糕。
作为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#足够了解您要传入的类型,它将在编译时选择通用类型。