كيفية الحصول على قيمة خاصية كائن بواسطة اسمها النصي عبر التأمل في 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);
```
ولكن هذا ينتج خطأ إذا كانت الخاصية غير موجودة. كيف يمكن معالجة هذه الحالات بشكل صحيح؟ هل هناك طريقة أكثر أمانًا؟ شكرًا مقدمًا.