Флаг формата строки C# или модификатор к строчному параметрическому усилителю

Оператор 'использования' не влияет на производительность, поскольку это - просто помощник в квалификации названий Ваших идентификаторов. Таким образом вместо того, чтобы иметь необходимость ввести, Система. IO.Path. Объединение (...) , можно просто ввести, Путь. Объединение (...) , если Вы имеете Система использования. IO.

41
задан Frank Tan 3 November 2016 в 22:38
поделиться

2 ответа

Есть только заполнение и выравнивание ... Итак, простой способ, как вы сказали, использовать «John» .ToUpper () или «John». ToLower () .

Другим решением может быть создание пользовательского IFormatProvider , чтобы обеспечить нужный строковый формат.

Вот как будут выглядеть IFormatProvider и вызов string.Format.

public class CustomStringFormat : IFormatProvider, ICustomFormatter
{
    public object GetFormat(Type formatType)
    {
        if (formatType == typeof(ICustomFormatter))
            return this;
        else
            return null;

    }

    public string Format(string format, object arg, IFormatProvider formatProvider)
    {
        string result = arg.ToString();

        switch (format.ToUpper())
        {
            case "U": return result.ToUpper();
            case "L": return result.ToLower();
            //more custom formats
            default: return result;
        }
    }
}

И вызов будет выглядеть так:

String.Format(new CustomStringFormat(), "Hi {0:U}", "John");
65
ответ дан 27 November 2019 в 00:39
поделиться

Короче говоря, нет; AFAIK вам придется исправить исходные значения или использовать свою собственную замену string.Format . Обратите внимание, что если вы передаете пользовательский язык и региональные параметры (в string.Format ), вы можете использовать culture.TextInfo.ToLower (s) ,

7
ответ дан 27 November 2019 в 00:39
поделиться
Другие вопросы по тегам:

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