1

我有 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; }
            ..
            ..
4

3 回答 3

1

尝试:

var gc = (methodId == 2)? (LblBase)new LblPremium(id) : (LblBase)new LblIsoReport(id);

LblBase的基类在哪里。LblPremiumLblIsoReport

于 2012-12-10T17:30:24.380 回答
0

您在 if 和 else 代码块中声明 gc ,因此它不存在于它们之外。

您也不能像在编译时需要知道确切类型那样使用 var 变量。

于 2012-12-10T17:29:27.360 回答
-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;

}
于 2012-12-10T17:41:24.713 回答