编程语言
首页 > 编程语言> > C#:在同一语句中动态实例化不同的类?

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