Как сделать функцию внутри класса, которая может вернуть энумератор/список string
c названиями всех публичных полей этого класса?
Например есть класс:
public class MyClass
{
public int MyField {get; set;}
}
В нем определим функцию:
public List<string> GetAllField()
{
//
}
Суть в том, что бы можно было добавлять поля и не править каждый раз функцию GetAllField()
Воспользоваться рефлексией и получить данные о полях из самого класса -
public IEnumerable<string> GetPublicProperties() {
return this.GetType()
.GetProperties()
.Where(x => x.GetMethod.IsPublic)
.Select(x => x.Name)
.ToArray();
}
Однако подобный код будет ресурсозатратным, лучше вынести определение полей в статический конструктор класса
public class Example
{
private static readonly string[] _publicProperties;
static Example()
{
_publicProperties = typeof(Example)
.GetProperties()
.Where(x => x.GetMethod.IsPublic)
.Select(x => x.Name)
.ToArray();
}
public int Id { get; set; }
public string TestValue { get; set; }
public string TestValue2 { get; private set; }
public IEnumerable<string> GetPublicProperties()
{
return _publicProperties;
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Использую mysql При выводе в командной строке кракозябры Подскажите как вывести правильные записи кирилицу
Как правильно отредактировать виджет в вордпресе? Я наследую тему, создаю дочернюю, в которой все, что нужно, перезаписываюНо столкнулся...
Подскажите, мне нужно вручную задать url-страницыТо есть к примеру в форме ввожу имя "aboutus", записывает в базы данных, и создается страница с таким...