#c# #string #winforms #public
#c# #строка #winforms #общедоступный
Вопрос:
Я начал изучать C # несколько дней назад, и у меня возникла проблема с общедоступными строками, в настоящее время я пытаюсь написать программу, которая копирует и заменяет файлы для практики, но у меня проблема с общедоступными строками, сколько бы я ни пытался изменить код, я не мог этого понятьсам, поэтому я пришел сюда за помощью
Что я делаю не так?
Вот код:
экстрактор пространства имен { общедоступный частичный класс Form1 : Form { общедоступная строка s { get; set; } общедоступная строка sSelectedPath { get; set; } общедоступная строка beckup { get; set; } общедоступная Form1() { InitializeComponent(); } private void direc_Click(отправитель объекта, EventArgs e) { FolderBrowserDialog fbd= new FolderBrowserDialog(); fbd.Описание = "Выберите папку";
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;
}
}
}
Комментарии:
1. В соответствии с рекомендациями — вы должны использовать регистр Pascal при именовании свойств — msdn.microsoft.com/en-us/library/fzcth91k(v=vs.71).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;