为什么我会得到一个InvalidCastException
当尝试这样做时?
throw (ArgumentNullException)(new Exception("errormessage", null));
这是以下函数的简化版本。
public static void Require<T>(bool assertion, string message, Exception innerException) where T: Exception
{
if (!assertion)
{
throw (T)(new Exception(message, innerException));
}
}
完整的错误信息是:
System.InvalidCastException:无法将“System.Exception”类型的对象强制转换为“System.ArgumentNullException”类型。
我的印象是您正在实例化一个基类并尝试将其转换为派生类。我不认为你能够做到这一点,因为 Exception 比 ArgumentNullException 更“通用”。不过你也可以反过来做。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)