C# C中的名称空间问题

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

为什么button1\u click函数会说“path”元素在此上下文中不可用?
我确信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字段为什么是静态的?