У меня есть текстовое поле, которое генерирует код на основе выбора, сделанного пользователем. Я хотел бы, чтобы каждый возможный код соотносился с копированием и перемещением одной папки в другую. Папка выбирается другим текстовым полем, которое позволяет пользователю вручную выбрать путь для новых файлов, в которые нужно переместить. Я хочу создать строку операторов if / else if для каждого из возможных кодов из textbox1. Взгляните на мой код ниже и посмотрите, что вы найдете. Вроде все работает, кроме моих утверждений uder
Приватная недействительность button1_click ...
private void button1_Click(object sender, EventArgs e)
{
string destination = textBox1.Text;
if (textBox2.Text == "111")
String sourceFile = (@"C:\Program Files (x86)\OrganizerPro\TFSN Internal Advisor to SWAG PPW");
System.IO.File.Move(sourceFile, destination);
}
2 ответа
Ваша непосредственная проблема может заключаться только в определении объема, похоже, вы пытаетесь выполнить ход, даже если if
не смог установить значение.
Список If / else не очень удобное решение, вам нужно будет перестраивать и повторно развертывать каждый раз, когда список возможностей изменяется. Избегайте этого, читая список из чего-то внешнего по отношению к приложению.
Однако то, что вы описываете, по сути, является отображением кода и имени файла.
Если ваше отображение действительно статично, и вы счастливы, что оно встроено в приложение, вы можете определить сопоставление следующим образом
private Dictionary<string, string> mapping = new Dictionary<string, string>
{
{ "111", @"c:\Program Files\File 1.txt" },
{ "112", @"c:\Program Files\File 2.txt" },
{ "113", @"c:\Program Files\File 3.txt" },
};
Вы можете получить значения, используя простой Linq
var codeLookup = mapping.FirstOrDefault(kv => kv.Key == textBox2.Text);
if (codeLookup.Key != null)
{
System.IO.File.Move(codeLookup.Value, destination);
}
Ваш вопрос не очень ясен. Но в вашем коде есть что-то нелогичное. это код метода, поэтому измените модификатор доступа метода с частного на защищенный или открытый, потому что щелчок по событию не достигает этого метода
private void button1_Click(object sender, EventArgs e)
К
protected void button1_Click(object sender, EventArgs e)
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.