2

ユーザーコントロールを作成していますが、データベースクラスについて何も知らないようにします。

ただし、そのデータベースクラスから特定の機能が必要です(従業員番号を指定して従業員の名前を取得する必要があります)。

私がやりたいのは、クリックイベントなどを接続するのと同じように、ユーザーコントロールにそれを使用するアプリケーションに接続できるものを作成することです。

私はこれまでC#プロジェクトでこのようなものを実際に作成したことがないので、それを何と呼ぶか​​わかりません。私はそれが存在しなければならないと思います。

データベースクラスで呼び出したい関数には、次のシグネチャがあります。

public string GetEmployeeName(int employeeNumber);

誰かが私がやろうとしていることを教えてもらえますか?

それが難しい場合は、例もいいでしょう。

4

3 に答える 3

5

あなたがやりたいのはデリゲートを使うことだと思います。

于 2012-12-20T16:07:25.070 に答える
4

デリゲートを使用してこれを行うことができますFunc<TArgument, TResult>

ユーザーコントロールにパブリックフィールドを追加します。

//A method that has an int parameter and returns a string
public Func<int, string> GetEmployeeName;

従業員名を取得する必要がある場合のユーザーコントロールでは、デリゲートを使用できます。

string employeeName;
if (GetEmployeeName != null)
    employeeName = GetEmployeeName(employeeNumber);

次のようにして、ホスティングページまたはコントロールからデリゲートを設定できます。

myUserControl.GetEmployeeName = GetEmployeeName;
于 2012-12-20T16:15:04.487 に答える
2

コントロールがデータベースに対して多くのビジネスアクションを呼び出す必要がある場合は、インターフェイスとそれに実装のインスタンスを作成することをお勧めします。

于 2012-12-20T16:26:24.830 に答える