公共字符串的值始终为空
Posted
技术标签:
【中文标题】公共字符串的值始终为空【英文标题】: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;
【问题讨论】:
根据指南 - 您应该在属性命名中使用 Pascal Case - msdn.microsoft.com/en-us/library/fzcth91k%28v=vs.71%29.aspx 【参考方案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;
【讨论】:
以上是关于公共字符串的值始终为空的主要内容,如果未能解决你的问题,请参考以下文章