C# Reflection получить поле или свойство по имениC#

Место общения программистов C#
Ответить
Гость
 C# Reflection получить поле или свойство по имени

Сообщение Гость »


Есть ли способ указать имя функции, которая затем возвращает значение поля или свойства данного объекта с этим именем? Я пытался обойти это с помощью оператора объединения значений null, но, видимо, ему не нравятся разные типы (что также немного странно для меня, потому что null — это null). Я мог бы разделить это на нули, но должен быть лучший способ сделать это. Вот моя функция, и две строки с объектами Comparison не компилируются, но я оставлю их там, чтобы показать, что я пытаюсь сделать.

private void SortByMemberName(список List, строка имя_члена, логическое значение по возрастанию) { Тип типа = тип (T); Информация о MemberInfo = type.GetField(memberName) ?? type.GetProperty(имя_члена); если (информация == ноль) { throw new Exception("Указанное имя члена не является ни полем, ни свойством типа " + type.FullName); } Сравнение asc = (t1, t2) => ((IComparable) info.GetValue(t1)).CompareTo(info.GetValue(t2)); Comparison desc = (t1, t2) => ((IComparable) info.GetValue(t2)).CompareTo(info.GetValue(t1)); list.Sort(по возрастанию? по возрастанию: по убыванию); } Я слышал о чем-то, называемом динамическим LINQ, которое можно использовать, но ради обучения я делаю это по-своему.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»