ホームページ > バックエンド開発 > C++ > C# で名前付き文字列の書式設定を実現するにはどうすればよいですか?

C# で名前付き文字列の書式設定を実現するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-02 13:29:44
オリジナル
786 人が閲覧しました

How Can Named String Formatting Be Achieved in C#?

C での名前付き文字列の書式設定

Python の文字列書式設定構文では、位置ではなく名前による書式設定が可能であり、開発者は書式設定文字列内で変数名を直接使用できます。ただし、C# では、組み込みの String.Format はこの機能をサポートしていません。

カスタム ソリューション

C# で名前付き文字列の書式設定を実現するには、リフレクションまたはテンプレートを使用して独自のメソッドを実装できます。解析テクニック。

の使用リフレクション:

string myString = "{foo} is {bar} and {yadi} is {yada}".Inject(o);
ログイン後にコピー

テンプレート解析の使用:

Status.Text = "{UserName} last logged in at {LastLoginDate}".FormatWith(user);
ログイン後にコピー

改善メソッド:

public class FormattedString
{
    private readonly string _template;

    public FormattedString(string template)
    {
        _template = template;
    }

    public string FormatWith(object o)
    {
        var type = o.GetType();
        var props = type.GetProperties();

        return _template.Replace("{PropertyName}", prop.GetValue(o))
                        .Replace("{propertyName}", prop.GetValue(o))
                        .ToString();
    }
}
ログイン後にコピー

使用法:

var formattedString = new FormattedString("{foo} is {bar} and {yadi} is {yada}");
Console.WriteLine(formattedString.FormatWith(new { foo = "alpha", bar = "beta", yadi = "gamma", yada = "delta" }));
ログイン後にコピー

文字列補間 (C# 6 以降)

2015 年の C# 6 のリリースにより、文字列補間が行われるようになりました。は、名前付き文字列の書式設定を可能にする組み込み機能として導入されました。構文は、上で説明したカスタム メソッドに似ています:

$"{{some_variable}}: {{some_other_variable}}"
ログイン後にコピー

以上がC# で名前付き文字列の書式設定を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート