c# - 在 C# 中确定装箱对象的类型?

标签 c#

我很好奇如何在 C# 中获取装箱对象的类型。这是一个例子:

try{
    ...
}catch(Exception ex){
    //get the specific type of exception
}

如你所见,Exception的子类的任何实例都会被捕获,现在你如何获取具体的类型?

请注意,以上只是一个例子,我不会那样使用它,所以请不要建议捕获特定的异常。

这是另一个例子:

Person person = new Person("John"); 对象 obj = 人;//盒子

现在如何从 obj 获取类型 Person

最佳答案

你可以这样做的方法:

答:使用GetType()

Type type = ex.GetType()

B:使用

if (ex is FileNotFoundException)
{
}

(请注意,如果 ex 是从 FileNoteFoundException 派生的,上面的测试也会返回 true。)

C:如果你需要关于类型的额外信息,你可以使用反射。

ex.GetType().GetProperty("PropName"); // Etc.

关于c# - 在 C# 中确定装箱对象的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33383938/

相关文章:

c# - 打开文件时,Excel 导入数据集会中断

c# - 无法在 C# 中加载 pdf 文档

c# - 一次将两条记录插入两个表中,其中一个表使用另一个表作为外键?

c# - List<T>.Contains 未显示过载

c# - 如何在 Where 子句中使用组合条件 AND/OR 编写查询?

c# - ASP.Net:使用 Javascript 和 AJAX 构建多语言网站的方法

c# - 用于浏览器兼容性的代码或 javascript

c# - 是否只有在Lucene.net中搜索词组才能找到完全匹配?

c# - 在 C# 中,当我调用 BeginXXX 时有两个线程

C# REST API : xml as post data