私は他のいくつかの大学でこのプロジェクトに取り組んでいます。それは上に構築されてWindows MDI forms
おり、顧客の特定のニーズに応じてフォームをロードするためのカスタムメソッドがあります。
最初は、メソッドは2つのパラメーターのみを取得する必要がありました。
protected void LoadForm<T>(ToolStripButton formButton, string buttonText) where T : Base Form
それでも継承されたコードであるため、パラメーターを渡す必要のないいくつかのフォームを継承するため、次のメソッドを使用しました。
protected void LoadForm<T>()
{
LoadForm<T>(null, null);
}
それから私の大学は別のパラメータを渡す必要がありました:long? EntityId
そして再び既存のコードを壊さないために彼は上記のメソッドを:に変更しました
protected void LoadForm<T>(long? loadEntityId = null) where T : BaseForm
{
LoadForm<T>(null, null, loadEntityId);
}
そして、ビジネスロジックを使用した実際の方法は次のようになりました。
protected void LoadForm<T>(ToolStripButton formButton, string buttonText, long? loadEntityId = null) where T : BaseForm
ここで、4番目のパラメーターを自分で渡す必要があります。これも、前のコードを壊さないという問題が実際に発生しています。論理は正しいと思いましたが、そうではなかったようです。ブールパラメータを渡す必要があるbool IsClosingForm
ので、次のようなビジネスロジックを使用してメソッドを作成しました。
protected void LoadForm<T>(ToolStripButton formButton, string buttonText, long? loadEntityId = null, bool IsClosingForm= true) where T : BaseForm
そして、boolパラメーターを渡す必要がある状況を処理するための新しいメソッドを追加します。
protected void LoadForm<T>(bool IsClosingForm= true) where T : BaseForm
{
LoadForm<T>(null, null, null, IsClosingForm);
}
また、大学のメソッドを変更して、4つのパラメーターのメソッドを呼び出します。
protected void LoadForm<T>(long? EntityId = null) where T : BaseForm
{
LoadForm<T>(null, null, EntityId, true);
}
しかし、それはそのように機能しておらず、私が得るエラーは次のとおりです。
protected void LoadForm<T>(long? EntityId = null)
とprotected void LoadForm<T>(bool IsClosingForm= true)
メソッドの間の呼び出しがあいまいです
ここでロジックを取得していないことは明らかなので、2つの質問があります。コードを変更して機能させる方法と、可能であれば、間違いの原因を誰かに指摘して、この背後にあるロジックを取得できるようにします。最初はとても簡単な作業のように見えましたが、今では理解できないままにしておくべきではない何かが欠けていると思います。