我在后端创建了很多按钮,所以我认为将其抽象出来以减少代码行数是明智的。但是,当我尝试这样做时,它给我一个错误,提示“无法在此范围内声明名为“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 buttonName
和 Button buttonName
。
尝试重命名您的按钮,例如,Button newButton
关于c# - 为什么我不能使用参数字符串来命名我的按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42558674/