将额外参数传递给在别处定义的事件处理程序?

时间:2016-11-05 01:09:43

标签: c# if-statement

我有一个通用的SQL实用程序类,我为很多任务编写,我使用SQLInfoMessageEventHandler显示来自长时间运行的存储过程的错误/信息消息。

我喜欢我的事件处理程序委托(在类外定义),以便能够获取额外的信息,例如字符串storedProcedureName。有干净的方法吗?

我有多个实用程序类,我试图保持独立,所以我不显示SQL类中的任何消息,因为我使用不同的类来显示/记录事件。

我在这里看到了一些使用Lambda表达式的非常聪明的方法,但是当我在课堂外定义委托时,我可以弄清楚如何使它工作。

//SQL class method
executeQuery (string storedProcedureName, SqlnfoMessageEventHandler eh = null)
{
    //setup SQL connection
    if (eh ! null)
    {
        connection.FireInfoMessageEventOnUserErrors = true;
        connection.InfoMessage += eh;
    }
    //finish work
}


//Outside SQL class
static void showInfoMessage (object sender, SqlInfoMessageEventArgs e)
{
    //Display e.Message
    //Would also like to receive the storeProcedureName string
}

0 个答案:

没有答案