私は他のイベントにイベントを渡したいが、今はそれを行うために関数を使う。他のイベントにイベントを渡す方法
C#はb.WriteEvent + = a.WriteEventのようなイベントを渡すことができますか?
私はたくさんのクラスを持っていて、上のクラスに引数を渡したいのですが。
私は次のように書いて欲しい。a.event + = b.event。 b.event + = c.event
ロットの代わりに使用方法。
ありがとうございました。
class Program
{
static void Main(string[] args)
{
ClassA a = new ClassA();
ClassB b = new ClassB();
a.WriteEvent += MainWrite;
b.WriteEvent += a.WireFunction; // Now I use
//b.WriteEvent += a.WriteEvent; <= Can I use like this ?
b.WireFunction("some str");
Console.ReadLine();
}
static void MainWrite(string str)
{
Console.WriteLine(str);
}
}
class ClassA
{
public event Handler WriteEvent;
public void WireFunction(string str)
{
WriteEvent(str);
}
}
class ClassB
{
public event Handler WriteEvent;
public void WireFunction(string str)
{
WriteEvent(str);
}
}
public delegate void Handler(string str);
複数のイベントに対して同じイベントハンドラを使うことができます: 'b.WriteEvent + = MainWrite;' –
いいえあなたがなぜ尋ねているのか分かりません。コンパイラはエラーメッセージを出します。メッセージは明確ではありませんか?また、なぜあなたはこれを試していますか? – jeroenh
理由は私のMainClassはClassBを呼び出せません。ありがとう –