РЕДАКТИРОВАТЬ: Я только что прочитал ваш комментарий о неиспользовании переключателя, но я все равно оставлю это здесь, на всякий случай ... перейдите ко второму ответу .
Может быть, что-то вроде этого:
public enum Property { Name, Age, DateOfBirth};
public T GetProperty<T>(Property property)
{
switch (property)
{
case Property.Name:
return this.Name;
// etc.
}
}
Я не слишком силен в генетике, так что, возможно, кто-то может помочь мне с ответным броском.
Кроме того, вы можете добавить поле в свой класс типа DataRow и использовать индексатор для доступа к нему:
public class MyClass
{
DataTable myRow = null;
MyClass(DataRow row)
{
myRow = row;
}
public object this[string name]
{
get
{
return this.myRow[name];
}
set
{
this.myRow[name] = value;
}
}
}
Использование:
MyClass c = new MyClass(table.Rows[0]);
string name = c["Name"].ToString();