2017-04-11 8 views
0

winformで選択した日付について、別のwinformで通知するシナリオがあります。私はclass構造でそれを囲んだ。 Roo子から大親クラスのメソッドをトリガーする方法

からトリガするために私のFooと計画方法をサブスクライブすることによってeventsを使用しようとしたが、私はRooFooの別のセッションを作成しない限り、私は

class Foo 
{ 
    static void Main() 
    { 
     Too to = new Too(); 
     // 
     Foo fo = new Foo(); 
     fo.PromptUser(); 
    } 

    void PromptUser() 
    { 
     // If date is in Past 
      //some logic 
     // If future 
      // some logic 
    } 
} 

class Too 
{ 
    public void Too_Method() 
    { 
     Roo ro = new Roo(); 
    } 
} 

class Roo 
{ 
    //In this class, User will be able to 
    // Select a date 
} 
を望んでいたように動作していないであろうことを達成することはできません

クラスで選択された日付を渡したり知ったりするには、Fooクラスのロジックを定義するにはどうすればいいですか?

+0

私は 'Roo'から' Foo'を呼び出すべきではありません –

答えて

0

使用静的メソッドので、Fooのクラスではクラス

class Roo 
{ 
    public static dateTime selectedDate() 
    { 
    //selected date 
    return //selected date 
    } 
} 

をインスタンス化する必要

class Foo 
{ 
    dateTime userSelectedDate = Roo.selectedDate(); 
} 

または別の方法

、使用の継承で直接ClassName.staticmethodによって静的メソッドを呼び出していません
class Foo : Roo 
    { 

    } 
+0

私の 'Foo'クラスから' Roo'を呼び出すことはできません。 –

+0

Rooクラスを静的クラスに変更し、その変数を静的として宣言して、すべてのフォーム間でアクセスできるようにします。 –

+0

申し訳ありません。私たちのアーキテクチャはそのような変更を許さず、同時にクラス「Roo」は他の多くのクラスでも使用されています。この要件のクラスデザインを変換することはできません –

関連する問題