【发布时间】:2013-11-06 09:03:26
【问题描述】:
即使对象的当前值为空,是否有更好的方法来确定对象的底层类型?
当 someObject 确实是字符串类型但当前持有null 值时,以下代码不起作用。
public void doWork(object someObject)
{
var objAsString = someObject as string;
if (objAsString != null)
{
// do work, return
// work involves string specific logging/manupulation
}
var objAsByteArr = someObject as byte[];
if (objAsByteArr != null)
{
// do work, return
// work involves byte specific logging/manupulation
}
throw new Exception("Unknown type encountered");
}
【问题讨论】:
-
someObject的类型是什么?是object吗? -
你有一个空抽屉。有人递给你一个空盒子,让你把盒子里的所有锤子都放进抽屉里。你这样做,这不会花费很长时间,因为空盒子里没有锤子。之后抽屉还是空的。你现在的问题是:我怎么知道空抽屉是空的,因为它没有锤子? 这是一个疯狂的问题。没有锤子的空抽屉与没有苹果的空抽屉相同。你无法将它们区分开来。
-
哇...约翰和埃里克在我的第一个 SO 问题上!今天早上我做了正确的事来召唤 C# 众神 :)
-
@user100003:一位C#大神,一位关注的追随者。
标签: c#