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 回答