Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mencapai Pengikatan Data Jenis-Selamat dalam C# Tanpa Operator `nameof`?
Ketiadaan operator 'nameof' dalam C# telah mencetuskan perbincangan di kalangan pembangun. Operator ini, jika dilaksanakan, akan membolehkan pengambilan semula nama sifat sebagai rentetan, seperti "Nama" daripada nameof(Customer.Name).
Untuk senario yang memerlukan pengikatan data selamat jenis, pembangun telah mencari penyelesaian dalam ketiadaan 'nama'. Satu penyelesaian muncul dalam .NET 3.5 yang menggunakan ungkapan lambda. Walau bagaimanapun, mencari penyelesaian ini boleh menjadi mencabar.
Untuk melaksanakan kefungsian 'nameof' dalam .NET 3.5, pendekatan berikut boleh diguna pakai:
using System; using System.Linq.Expressions; class Program { static void Main() { var propName = Nameof<SampleClass>.Property(e => e.Name); Console.WriteLine(propName); } } public class Nameof<T> { public static string Property<TProp>(Expression<Func<T, TProp>> expression) { var body = expression.Body as MemberExpression; if (body == null) throw new ArgumentException("'expression' should be a member expression"); return body.Member.Name; } }
Kod ini mengambil dan memaparkan dengan berkesan nama sifat sebagai rentetan sambil memastikan keselamatan jenis.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Pengikatan Data Jenis-Selamat dalam C# Tanpa Operator `nameof`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!