c# - 为什么我不能使用参数字符串来命名我的按钮?

标签 c# .net parameters abstract

我在后端创建了很多按钮,所以我认为将其抽象出来以减少代码行数是明智的。但是,当我尝试这样做时,它给我一个错误,提示“无法在此范围内声明名为“buttonName”的本地或参数,因为该名称用于封闭的本地范围以定义本地或参数”。我在这里错过了什么吗?我认为这就是在这种情况下使用参数的确切原因。

这是我正在尝试做的一个例子。

转动这个

Button buttonDetailsEdit = new Button();
buttonDetailsEdit.ID = "ButtonDetailsEdit";
buttonDetailsEdit.Text = "Edit";
buttonDetailsEdit.UseSubmitBehavior = false;
buttonDetailsEdit.Click += new EventHandler(EditCall);
PlaceHolderDetailsContent.Controls.Add(buttonDetailsEdit);

Button buttonDetailsBack = new Button();
buttonDetailsBack.ID = "ButtonDetailsBack";
buttonDetailsBack.Text = "Back to List";
buttonDetailsBack.UseSubmitBehavior = false;
buttonDetailsBack.Click += new EventHandler(IndexCall);
PlaceHolderDetailsContent.Controls.Add(buttonDetailsBack);

进入这个(用方法调用代替旧代码)

void CreateButton(string buttonName, string buttonIDText, string buttonText, PlaceHolder PlaceHolderName, string methodCall)
{
    Button buttonName = new Button();
    buttonName.ID = buttonIDText;
    buttonName.Text = buttonText;
    buttonName.UseSubmitBehavior = false;
    buttonName.Click += new EventHandler(methodCall);
    PlaceHolderName.Controls.Add(buttonName);
}

methodCall 部分也会在此处抛出错误,我假设是由于“methodCall”在此实例中不存在。

最佳答案

您不能在同一范围内使用相同名称的两个变量 string buttonNameButton buttonName

尝试重命名您的按钮,例如,Button newButton

关于c# - 为什么我不能使用参数字符串来命名我的按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42558674/

相关文章:

c# - 测试期间的 EF Core 内部缓存和许多 DbContext 类型

c# - 如何使用 NAudio 对波形文件执行 FFT

c# - 为什么比较两个相等的波斯语单词不返回 0?

java - 根据方法输入动态返回值

Swift:在 View 之间传递多个值

c# - 使用属性在 C# 中封装数据

c# - AWS Lambda、.Net Core 和 MySql : Could not load file or assembly 'System. Diagnostics.TraceSource,版本 = 4.0.0.0

.net - 为什么 Dapper 不需要开放连接?

c# - Visual Studio 项目备份

ruby-on-rails - 将 text_field 自定义参数传递给 link_to paypal IPN