c# - 如何获取实例化对象的类型并使用它在 C# 中强制转换不同的对象?
问题描述
我正在尝试将基础对象转换为派生对象。
像这样:
DerivedClass castedBaseObject = (randomDerivedObject.GetType())originalBaseObject;
上面的例子不起作用,抛出以下错误:error CS1003: Syntax error, ',' expected
解决方案
如果您有有限数量的类型(我们称之为它们MyClass1, MyClass2, ..., MyClassN
)并且您知道您的对象originalBaseObject
具有这些类型之一,您可以执行以下操作:
if (originalBaseObject is MyClass1 tmp1)
{
// do something with tmp1
}
else if (originalBaseObject is MyClass2 tmp2)
{
// do something with tmp2
}
// ...
// and the last type
else if (originalBaseObject is MyClassN tmpN)
{
// do something with tmpN
}
else {
throw new Exception("Non of the given types");
}
推荐阅读
- scala - sbt 部署/发布失败,java 12 启用预览功能 JavadocGeneration 失败
- sql - 如何在sql中使用pivot到多列
- javascript - b-table 中的可单击列在第一次单击时未注册排序图标
- c# - 用 AppendLine 删除一个额外的空行?
- xml - XSLT 根据条件拆分 XML 文件
- reactjs - React Native 从数据库中选择默认值
- reactjs - 如何在 React 单元测试中不渲染某些组件
- phpmyadmin - Phpmyadmin Xampp 列宽适合页面,如何调整列宽?
- python - Google Sheets python api - 如何在保留工作表格式的同时将值写入工作表?
- php - 为什么我的网站联系表不起作用?