У меня есть текстовое поле, которое генерирует код на основе выбора, сделанного пользователем. Я хотел бы, чтобы каждый возможный код соотносился с копированием и перемещением одной папки в другую. Папка выбирается другим текстовым полем, которое позволяет пользователю вручную выбрать путь для новых файлов, в которые нужно переместить. Я хочу создать строку операторов 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
Joe Pearson 28 Фев 2015 в 04:11

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);
        }
1
Andy Baker 28 Фев 2015 в 02:21

Ваш вопрос не очень ясен. Но в вашем коде есть что-то нелогичное. это код метода, поэтому измените модификатор доступа метода с частного на защищенный или открытый, потому что щелчок по событию не достигает этого метода

private void button1_Click(object sender, EventArgs e)

К

protected void button1_Click(object sender, EventArgs e)
0
Med.Amine.Touil 28 Фев 2015 в 01:30