Как сделать функцию внутри класса, которая может вернуть энумератор/список 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;
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Использую mysql При выводе в командной строке кракозябры Подскажите как вывести правильные записи кирилицу
Как правильно отредактировать виджет в вордпресе? Я наследую тему, создаю дочернюю, в которой все, что нужно, перезаписываюНо столкнулся...
Подскажите, мне нужно вручную задать url-страницыТо есть к примеру в форме ввожу имя "aboutus", записывает в базы данных, и создается страница с таким...