「参照」クラスをジェネリック型として含むリストがあります。したがって、「参照」クラスの子でリストを埋めることができるはずですが、コンパイラはエラーを報告します:
'naturalCalc.Enginee.Reference'
の定義が含まれておらず、型の最初の引数を受け入れる'Opener'
拡張メソッドが見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) (CS1061)'Opener'
'naturalCalc.Enginee.Reference'
ToPostfix.cs:27,34
「ToPostfix」クラスのスイッチ コードは、2 番目のケースで項目が「Opener」プロパティを持つことを保証します。
// The 'MyBrackets' class which contains the 'Opener' property.
public class MyBrackets : naturalCalc.Enginee.Reference
{
private bool opener;
public MyBrackets( bool opener )
{
this.opener = opener;
}
public bool Opener { get { return this.Opener; } }
}
// The 'ToPostfix' class in which the error is taken place.
class ToPostfix
{
List<Reference> infix = new List<Reference>();
List<Reference> postfix = new List<Reference>();
public ToPostfix(List<Reference> infixForm)
{
this.infix = infixForm;
foreach (Reference item in this.infix)
{
switch ( item.ToString() )
{
case "naturalCalc.Enginee.MyFloat":
this.postfix.Add(item);
break;
case "naturalCalc.Enginee.MyBrackets":
if (item.Opener)
{
this.postfix.Add(item);
}
break;
}
}
}
}