Regex replace - есть ли лучший способ поменять объявление и присваивание - PullRequest
0 голосов
/ 02 февраля 2011

Я искал способ поменять свои назначения, т. Е.

a = b;

становится

b = a;

Если кому-то интересно, это для загрузки настроек и их выгрузки.

Я создал для него регулярное выражение: Найти что: {[^:b]*} = {[^;]*} Заменить на: \2 = \1

Это нормально работает, но есть ли другой способ загрузить и сохранить настройки, которые мне не хватает?

1 Ответ

0 голосов
/ 02 февраля 2011

Альтернативный подход: как насчет создания класса настроек с методом, который копирует значения? Таким образом, вы записываете список назначений только один раз:

using System;

class Settings {
    public int ValueA { get; set; }
    public string ValueB { get; set; }
    public void CopySettings(Settings other) {
        ValueA = other.ValueA;
        ValueB = other.ValueB;
    }
}

class Program {
    static void Main(string[] args) {
        Settings a = new Settings() { ValueA = 3, ValueB = "something" };
        Settings b = new Settings();
        // and then you can do one the following, which will copy all settings
        // in both cases...
        b.CopySettings(a);
        a.CopySettings(b);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...