Avatar ·

كيفية الحصول على قيمة خاصية كائن بواسطة اسمها النصي عبر التأمل في C#؟

مرحبًا بالجميع! أنا مبتدئ في C# وواجهت مهمة: لدي كائن من الفئة Person، وأريد الحصول على قيمة خصائصه ديناميكيًا، ولكن اسم الخاصية يُمرر كسلسلة نصية. على سبيل المثال، يُدخل المستخدم "Name" أو "Age"، وأحتاج إلى إرجاع القيمة المقابلة. إليك الفئة الخاصة بي: ```csharp public class Person { public string Name { get; set; } public int Age { get; set; } public string City { get; set; } } ``` أقوم بإنشاء كائن: ```csharp var person = new Person { Name = "إيفان", Age = 30, City = "موسكو" }; string propertyName = "Name"; // أو "Age"، "City" ``` كيف يمكنني الحصول على قيمة person.Name إذا كنت أعرف فقط السلسلة "Name"؟ لقد سمعت عن التأمل، لكني لا أفهم كيفية تطبيقه. جربت شيئًا مثل: ```csharp var value = person.GetType().GetProperty(propertyName).GetValue(person); ``` ولكن هذا ينتج خطأ إذا كانت الخاصية غير موجودة. كيف يمكن معالجة هذه الحالات بشكل صحيح؟ هل هناك طريقة أكثر أمانًا؟ شكرًا مقدمًا.