我有2个类,共享10个属性中的9个。我试图做你在下面看到的,但在当前的上下文中不存在gc。我想知道是否有
if (methodId == 2)
{
var gc = new LblPremium(id);
}
else
{
var gc = new LblIsoReport(id);
}
gc.Nbr = Nbr;
if (method == 2) { gc.Location = "Location Identification: " + pvtData.Location; }
..
..
答案 0 :(得分:1)
尝试:
var gc = (methodId == 2)? (LblBase)new LblPremium(id) : (LblBase)new LblIsoReport(id);
其中LblBase
是LblPremium
和LblIsoReport
的基类。
答案 1 :(得分:0)
你在if和else代码块中声明了gc,所以它不存在于它们之外。
你也不能使用var变量,因为在编译时需要知道确切的类型。
答案 2 :(得分:-1)
var gc = new Object();
//程序开始......
switch (methodId)
{
case 1:
//what you want;
break;
case 2:
gc = new LblPremium(id);
gc.Location = "Location Identification: " + pvtData.Location;
gc.Nbr = Nbr;
break;
default:
gc = new LblIsoReport(id);
gc.Nbr = Nbr;
break;
}