c# - 将一个方法作为参数传递给另一个方法

标签 c#

<分区>

我想将一个方法作为参数传递,以从我的程序中删除重复代码。这是我想要的功能:

 private void sqlQuery(Method sqlMethod)
{
    conn.ConnectionString = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
    try
    {
        //open SQL connection
        conn.Open();
        sqlMethod();
    }
    catch (Exception ex)
    {
        System.Diagnostics.Debug.Write(ex.ToString());
    }
    finally
    {
        conn.Close();
    }
}

使用:

private void insertTemplate()
{
    //create SQL command
    SqlCommand insertTemplate = new SqlCommand("INSERT INTO [SavedDescriptionTemplates] (SavedDescription, UserId, CreatedDate) VALUES (@descriptionParam, @userIdParam, @createdDateParam)", conn);
    //create and assign parameters
    insertTemplate.Parameters.AddWithValue("@descriptionParam", descriptionInput.Text);
    insertTemplate.Parameters.AddWithValue("@userIdParam", Int32.Parse(userNameDropDown.SelectedItem.Value));
    insertTemplate.Parameters.AddWithValue("@createdDateParam", DateTime.Now);
    //execute command and retrieve primary key from the above insert and assign to variable
    insertTemplate.ExecuteNonQuery();
}

电话会是:

sqlQuery(insertTemplate());

这可能吗?

最佳答案

使用 Action代表。

改变

private void sqlQuery(Method sqlMethod)

进入

private void sqlQuery(Action sqlMethod)

sqlQuery(insertTemplate());

进入

sqlQuery(insertTemplate);

关于c# - 将一个方法作为参数传递给另一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17450060/

相关文章:

c# - BooleanToVisibilityConverter,当 true 或 null 时转换为 Visible,当 false 时转换为 Collapsed

c# - 检索图像资源,其中资源名称是变量

c# - 如何在 C# Winform 的文本框事件处理程序中禁用或捕获 "paste"或 "Control+V"事件?

c# - WinApp 窗体崩溃,没有任何错误或异常 .Net

c# - 使用代码隐藏在 WPF 中 Canvas 缩放

c# - 传递函数作为参数

c# - 如何从字符串中删除字符组合?

c# - 如何在 .net 4.0 中使用异步/等待? AsyncTargetingPack 和 Microsoft.Bcl.Async 之间的区别?

c# - C# 中的 MDX 解析器

c# - 如何从统一容器中按名称获取类型的所有实例?