2011-06-05 9 views
1

やあみんな、私はその後、別の基底クラスの(マクロコマンド)、マクロコマンド(リサイズ、回転、色)の3つのサブクラスを、構成されたアプリケーションと何も(画像)を継承していない別のクラスとを持っています私はFormクラスで私のマクロコマンドオブジェクトを作成する場合、基本的に、私はその後、マクロコマンドのリストに追加する必要がありますマクロコマンドC#が問題に一覧表示する追加

class Macro 
{ 
    List<MacroCommand> macroCommandList = new List<MacroCommand>(); 
} 

のリストを保持するクラス(マクロ)は、しかし、私は私がしようとするとエラーが発生しておきますこれを行うには:

macroCommandList.Add(colourObject); 
macroCommandList.Add(rotateFlipObject); 
macroCommandList.Add(resizeObject); 

(これはフォームclaですSS)

は、すべてのヘルプは、おかげでみんなをいただければ幸いです。

EDIT:エラー:名前2

エラー 'colourObjectは、' 現在のコンテキストCには存在しません:\ Users \ユーザーアリ\デスクトップ\割り当て3 \課題3 \課題3 \のForm1.cs 134 42割り当て3 エラー3現在のコンテキストに「macroCommandList」という名前が存在しません。C:¥Users¥Ari¥Desktop¥Assignment 3¥Assignment 3¥Assignment 3¥Form1.cs 135 21割り当て3

異なる行ごとに

+3

実際のエラーを誰かと共有したいと思っていますか? – Kon

+0

私はあなたが適切なヘルプを得るために完全なコードを投稿する必要があると思います。 –

+0

'colourObject'、' rotateFlipObject'、 'resizeObject'の型は何ですか? – Yuck

答えて

1

これは動作するはずです:

class Macro { 
    private List<MacroCommand> macroCommandList = new List<MacroCommand>(); 

    public void AddMacroCommand(MacroCommand mc) 
    { 
     macroCommandList.Add(mc); 
    } 
} 
0

エラーによると、追加しようとしているオブジェクトが存在しません。これらのオブジェクトはどこに宣言されていますか?その範囲は何ですか?リストはデフォルトではプライベートですので、それらのオブジェクトを引数としてメソッドに追加して、リストに追加する必要があります。

0

あなたはList<BaseClass>を持っている場合は、それだけにBaseClassBaseClass由来すなわちBaseClass「ESとクラス)に変換することができる要素を追加することができます。

あなたは(たとえば、macroCommandList)リストに要素を追加したい場合は、リストには、呼び出し元のコードにづけしていることを確認する必要があります。これは、公開する(非常に良い考えではない)か、追加するpublicクラス(つまりMacro)を包含クラスに追加することを意味します。 メソッドはpublicであるため、クラス外の呼び出し側からアクセス可能であり、private変数macroCommandListにもアクセスできます。

関連する問題