C# C中的名称空间问题
为什么button1\u click函数会说“path”元素在此上下文中不可用?C# C中的名称空间问题,c#,namespaces,C#,Namespaces,为什么button1\u click函数会说“path”元素在此上下文中不可用? 我确信Form2会收到“path”,因为带有path的诊断消息确实有效。类Form2中没有字段路径。例如,它可以是来自此命名空间的另一个类的静态字段。构造函数和save方法仅将path作为本地参数您必须在项目中的某个位置声明path..这样做吗 ... using System.Xml; namespace WindowsFormsApplication2 { public partial class F
我确信Form2会收到“path”,因为带有path的诊断消息确实有效。类Form2中没有字段路径。例如,它可以是来自此命名空间的另一个类的静态字段。构造函数和save方法仅将path作为本地参数您必须在项目中的某个位置声明path..这样做吗
...
using System.Xml;
namespace WindowsFormsApplication2
{
public partial class Form2 : Form
{
XmlDocument activeDoc=new XmlDocument();
public Form2(string path)
{
InitializeComponent();
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
MessageBox.Show(Convert.ToString(sender),Convert.ToString(e));
}
private void button1_Click(object sender, EventArgs e)
{
save(path);
}
private void save(string path){
activeDoc.Save(path);
}
}
}
...
using System.Xml;
namespace WindowsFormsApplication2
{
public partial class Form2 : Form
{
XmlDocument activeDoc=new XmlDocument();
String path;
public Form2(string _path)
{
path = _path;
InitializeComponent();
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
MessageBox.Show(Convert.ToString(sender),Convert.ToString(e));
}
private void button1_Click(object sender, EventArgs e)
{
save(path);
}
private void save(string path){
activeDoc.Save(path);
}
}
}
像这样更改代码
...
using System.Xml;
namespace WindowsFormsApplication2
{
public partial class Form2 : Form
{
XmlDocument activeDoc=new XmlDocument();
public Form2(string path)
{
InitializeComponent();
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
MessageBox.Show(Convert.ToString(sender),Convert.ToString(e));
}
private void button1_Click(object sender, EventArgs e)
{
save(path);
}
private void save(string path){
activeDoc.Save(path);
}
}
}
...
using System.Xml;
namespace WindowsFormsApplication2
{
public partial class Form2 : Form
{
XmlDocument activeDoc=new XmlDocument();
String path;
public Form2(string _path)
{
path = _path;
InitializeComponent();
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
MessageBox.Show(Convert.ToString(sender),Convert.ToString(e));
}
private void button1_Click(object sender, EventArgs e)
{
save(path);
}
private void save(string path){
activeDoc.Save(path);
}
}
}
现在
按如下方式将路径分配给构造函数中的类变量,请注意,方法/构造函数的参数只能在该方法/构造函数的上下文中访问。在他们的边界外无法到达
private void button1_Click(object sender, EventArgs e)
{
save(Localpath);
}
因为它没有,path是save的一个参数,并且构造函数是唯一的-请参阅_path仍然不存在于button\u Click中,您的答案也没有回答button1\u Click函数为什么说“path”元素在此上下文中不可用的问题?您的path只是作为参数存在于构造函数中。因此它的作用域仅适用于public form2字符串路径{InitializeComponent;}我要指出的是,您的命名约定与普通命名约定不同,本地类变量通常具有下划线,而不是传入的参数。您的回答没有回答button1_click函数为什么说“path”元素在此上下文中不可用?此外,您的Localpath字段为什么是静态的?