Реверс строки. Формат? [дубликат]

ComboBox нужен DataTemplate для отображения объекта, неважно, насколько простой это. DataTemplate работает как это: получите значение от экземпляра. [путь], например,

bar1.Car.Color

, Таким образом, это не может получить значение от

null.Car.Color

, Это выдаст исключение нулевой ссылки. Так, пустой экземпляр не будет отображен. Но Цвету - если это - ссылочный тип - позволяют быть пустым, потому что не будет никакого исключения в этом случае.

9
задан Community 23 May 2017 в 02:16
поделиться

3 ответа

I don't believe there's anything in-box to support this, but in C#, you can pass an array of objects directly to any method taking params-marked array parameters, such as String.Format(). Other than that, I don't believe there's some way for C# & the .NET Framework to know that string X was built from magic format string Y and undo the merge.

Therefore, the only thing I can think of is that you could format your code thusly:

object[] parts = {"strager", 2};
string s = String.Format(formatString, parts);

// Later on use parts, converting each member .ToString()
foreach (object p in parts)
{
    Console.WriteLine(p.ToString());
}

Not ideal, and probably not quite what you're looking for, but I think it's the only way.

0
ответ дан 3 November 2019 в 09:30
поделиться

Вот код от кого-то, кто пытается эквивалент Scanf в C #:

http://www.codeproject.com/KB/recipes/csscanf. aspx

1
ответ дан 3 November 2019 в 09:30
поделиться

Вам придется реализовать это самостоятельно, так как ничего не встроено, чтобы сделать это за вас.

С этой целью я предлагаю вам получить фактический исходный код для внедрения .Net string.format (фактически, соответствующий код находится в StringBuilder.AppendFormat () ). Он находится в свободном доступе и использует конечный автомат для очень эффективного обхода строки. Вы можете имитировать этот код, чтобы также пройти по вашей отформатированной строке и извлечь эти данные.

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

Я также рекомендую переименовать ваш метод в InvertFormat () , потому что ReverseFormat звучит так, как и следовало ожидать от этого вывода:

.) S (woc 2 evah .regarts si eman yM

0
ответ дан 3 November 2019 в 09:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: