Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Pemformatan Rentetan Dinamakan Boleh Dicapai dalam C#?

Bagaimanakah Pemformatan Rentetan Dinamakan Boleh Dicapai dalam C#?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-02 13:29:44777semak imbas

How Can Named String Formatting Be Achieved in C#?

Pemformatan Rentetan Dinamakan dalam C

Sintaks pemformatan rentetan Python membenarkan pemformatan mengikut nama dan bukannya kedudukan, membolehkan pembangun menggunakan nama pembolehubah terus dalam rentetan format. Dalam C#, walau bagaimanapun, String.Format terbina dalam tidak menyokong ciri ini.

Penyelesaian Tersuai

Untuk mencapai pemformatan rentetan bernama dalam C#, anda boleh melaksanakan kaedah anda sendiri menggunakan refleksi atau templat teknik menghurai.

Menggunakan Refleksi:

string myString = "{foo} is {bar} and {yadi} is {yada}".Inject(o);

Menggunakan Penghuraian Templat:

Status.Text = "{UserName} last logged in at {LastLoginDate}".FormatWith(user);

Kaedah Yang Diperbaiki:

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();
    }
}

Penggunaan:

var formattedString = new FormattedString("{foo} is {bar} and {yadi} is {yada}");
Console.WriteLine(formattedString.FormatWith(new { foo = "alpha", bar = "beta", yadi = "gamma", yada = "delta" }));

Interpolasi Rentetan (C# 6 dan lebih baru)

Dengan keluaran C# 6 pada 2015, interpolasi rentetan diperkenalkan sebagai ciri terbina dalam yang membenarkan pemformatan rentetan dinamakan. Sintaks menyerupai kaedah tersuai yang dibincangkan di atas:

$"{{some_variable}}: {{some_other_variable}}"

Atas ialah kandungan terperinci Bagaimanakah Pemformatan Rentetan Dinamakan Boleh Dicapai dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn