【问题标题】:public string's value is always null公共字符串的值始终为空
【发布时间】:2014-08-18 13:34:13
【问题描述】:

几天前我开始学习 C#,但我遇到了公共字符串的问题,我目前正在尝试编写一个程序来复制和替换文件以进行练习,但无论如何我都遇到了公共字符串的问题我尝试了多少代码我无法弄清楚,所以我来这里寻求帮助

我做错了什么?

代码如下:

命名空间提取器
{
    公共部分类Form1:表格
    {
        公共字符串
        {
            得到;
            放;
        }
        公共字符串 sSelectedPath
        {
            得到;
            放;
        }
        公共字符串备份
        {
            得到;
            放;
        }
        公共表格1()
        {
            初始化组件();
        }
        private void direc_Click(对象发送者,EventArgs e)
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            fbd.Description = "选择一个文件夹";

        if (fbd.ShowDialog() == DialogResult.OK)
        {
            string sSelectedPath = fbd.SelectedPath;
        }

    }

    private void choof_Click(object sender, EventArgs e)
    {
        OpenFileDialog choofdlog = new OpenFileDialog();
        choofdlog.Filter = "All Files (*.*)|*.*";
        choofdlog.FilterIndex = 1;
        choofdlog.Multiselect = true;

        if (choofdlog.ShowDialog() == DialogResult.OK)
        {
             string s = choofdlog.FileName;
        }

    }

    private void button3_Click(object sender, EventArgs e)
    {
        ReplaceFile( s, sSelectedPath, beckup);
    }

    public static void ReplaceFile(string FileToMoveAndDelete, string FileToReplace, string BackupOfFileToReplace)
    {
        File.Replace(FileToMoveAndDelete, FileToReplace, BackupOfFileToReplace, false);

    }

    private void button1_Click(object sender, EventArgs e)
    {
        FolderBrowserDialog fbb = new FolderBrowserDialog();
        fbb.Description = "Select a folder";

        if (fbb.ShowDialog() == DialogResult.OK)
        {
            string beckup = fbb.SelectedPath;
        }
    }
}

【问题讨论】:

标签: c# string winforms public


【解决方案1】:
if (fbd.ShowDialog() == DialogResult.OK)
{
        string sSelectedPath = fbd.SelectedPath;
}

您在此处使用string 关键字声明了一个 变量。它不是设置属性。只需删除string。例如

if (fbd.ShowDialog() == DialogResult.OK)
{
        sSelectedPath = fbd.SelectedPath;
}

【讨论】:

    【解决方案2】:

    你的错误在这里:

    if (choofdlog.ShowDialog() == DialogResult.OK)
    {
        string sSelectedPath = choofdlog.FileName;
    }
    

    您使用的是局部变量,而不是成员变量。所以,写:

    if (choofdlog.ShowDialog() == DialogResult.OK)
    {
        sSelectedPath = choofdlog.FileName;
    }
    

    或者,如果您不想出错,最好在编写成员变量或方法时使用this.

    if (choofdlog.ShowDialog() == DialogResult.OK)
    {
        this.sSelectedPath  = choofdlog.FileName;
    }
    

    【讨论】:

      【解决方案3】:

      替换

       string s = choofdlog.FileName;
      

        s = choofdlog.FileName;
      

      【讨论】:

        猜你喜欢
        • 2012-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-19
        • 1970-01-01
        相关资源
        最近更新 更多