Pendekatan yang mantap untuk mengekstrak nama harta dari .NET Lambda Expressions
banyak. NET pemaju sering perlu mengekstrak nama harta dari Ekspresi Lambda. Kaedah yang sedia ada, seperti pemutus langsung kepada atau bergantung kepada ahli berasaskan objek, sering jatuh dari segi fleksibiliti dan keselamatan jenis. Artikel ini memperkenalkan teknik unggul untuk mendapatkan semula nama harta benda, menawarkan peningkatan keteguhan dan pemeriksaan jenis. MemberExpression
Pengambilan nama harta yang lebih baik
Kaedah yang dipertingkatkan ini memanfaatkan kuasa kelas, yang menyediakan perwakilan yang jelas dari sesuatu harta dalam rangka .NET. Fungsi teras untuk mengekstrak objek PropertyInfo
dari ekspresi lambda adalah seperti berikut: PropertyInfo
<code class="language-csharp">public static PropertyInfo GetPropertyInfo<TSource, TProperty>( Expression<Func<TSource, TProperty>> propertyLambda) { // Verify that the expression body is a MemberExpression if (!(propertyLambda.Body is MemberExpression member)) { throw new ArgumentException("The lambda expression must refer to a property."); } // Ensure the member is a PropertyInfo if (!(member.Member is PropertyInfo propertyInfo)) { throw new ArgumentException("The member expression must refer to a property."); } // Validate property type and accessibility ValidatePropertyInfo(typeof(TSource), propertyInfo); return propertyInfo; }</code>
Aplikasi praktikal
kaedah yang lebih baik memudahkan proses mendapatkan semula nama harta: GetPropertyInfo
<code class="language-csharp">var propertyInfo = GetPropertyInfo((SomeUserObject u) => u.UserID); // Utilize propertyInfo as required</code>
Ringkasan
Pendekatan halus ini menawarkan penyelesaian yang lebih dipercayai dan serba boleh untuk mengakses nama harta dari Ekspresi Lambda dalam .NET. Dengan menghapuskan keperluan untuk pemutus manual dan akses ahli berasaskan objek, dan menggabungkan pengesahan jenis yang mantap, pemaju boleh menulis kod yang lebih bersih, lebih diselenggarakan, dan selamat jenis apabila bekerja dengan ekspresi lambda yang berkaitan dengan harta.Atas ialah kandungan terperinci Bagaimanakah saya boleh mendapatkan semula nama harta dari ekspresi lambda dalam .net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!