EventArgs

イベントハンドラの第2引数として渡されるのがEventArgs。
イベントに関する情報がはいっている。

EventArgs Class (System) | Microsoft Docs

基本的には、自分で継承して独自の情報を格納できるようにしておいて、ハンドラに渡すという形になる。

空のプロジェクト作成
空のプロジェクト作成

空のプロジェクトを作成し、

EventConsoleEventArgs.cs
EventConsoleEventArgs.cs

EventConsoleEventArgs.csを追加。

EventArgsを継承し、このイベントの結果をResultプロパティ、入力文字列をLineプロパティで持つようにした。

EventConsole.cs
EventConsole.cs

EventConsole.csを追加。

コンストラクタで対象文字列を指定できるようにする。
EventLoopで入力文字列を読み取り、args.Lineにも入力文字列をセットしておく。
対象文字列と入力文字列が一致する場合は、 args.ResultをtrueにしてReadLineText実行、終わったらループを抜ける。
一致しない場合は、args.ResultをfalseにしてReadLineTextを実行、この場合はループを抜けない。

MainClass.cs
MainClass.cs

MainClass.csを追加。

コンストラクタに"END"を渡している。
EventConsole_ReadLineTextがイベントハンドラ
senderはthisなのでEventConsoleオブジェクト自身の型の名前、eはEventConsoleEventArgsオブジェクトargsなので各プロパティを出力。

ABCDE
sender = EventConsole
e.Line = ABCDE
e.Result = False
VWXYZ
sender = EventConsole
e.Line = VWXYZ
e.Result = False
END
sender = EventConsole
e.Line = END
e.Result = True
続行するには何かキーを押してください . . .

一致しない間はe.ResultがFalseで、繰り返す。
一致するとe.ResultがTrueになり、終了する。

Sample/dotnet/EventArgs/EventArgs/src/EventArgs_ at master · bg1bgst333/Sample · GitHub