C#:在同一语句中动态实例化不同的类?
作者:互联网
这是我正在尝试做的简化版本:
如果没有多个if..else子句和switch块,我可以模仿Javascript的eval()抖动行为来实例化C#中的类吗?
// Determine report orientation -- Portrait or Landscape
// There are 2 differently styled reports (beyond paper orientation)
string reportType = "Portrait";
GenericReport report;
report = new eval(reportType + "Report()"); // Resolves to PortraitReport()
需要源于这样一个事实:我有50种状态的6种类型的Crystal Reports(它们做同样的事情,但看起来截然不同).每个都有3种样式,而不是通过嵌套if..else语句来确定巨型开关块的概念,确定要使用的900个报告中的哪一个,我希望得到类似eval的解决方案.
解决方法:
你可以使用Activator.CreateInstance("myAssembly", "PortrainReport");
.虽然更可读的方法是创建一个Portrait Factory,它会为你创建正确的类型.
标签:c,instantiation,eval,crystal-reports,class 来源: https://codeday.me/bug/20190610/1213550.html