1

10 個のプロパティのうち 9 個を共有する 2 つのクラスがあります。私はあなたが以下に示すことをしようとしていましたが、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 に答える