Проверить существование поля объекта - C#

Узнай цену своей работы

Формулировка задачи:

Как проверить существование определённого поля (переменной) у объекта? В метод leadLocalLog передаётся объект формы и сообщение. Этот метод должен проверить если у текущей переданной формы поле toolStripStatusLabel1 что бы туда записать сообщение. Суть в том, что этот метод ещё и пишет сообщения в общий лог, поэтому проще просто отовсюду вызывать его передавая объект формы и сообщение а он записывает данные куда надо. У меня просто программа с множеством форм у которых есть toolStripStatusLabel1. В общем это не важно. Главное как узнать существует ли у объекта определённое поле или нет?
        public void leadLocalLog(Object obj, string message) {
            Program.log.writeData(message);
            Type type = obj.GetType();
            PropertyInfo propertyInfo = type.GetProperty("toolStripStatusLabel1");
            if (propertyInfo != null) {
                Type type1 = propertyInfo.GetType();
                PropertyInfo propertyInfo1 = type1.GetProperty("Text");
                if (propertyInfo1 != null) {
                    propertyInfo1 = (string)message;
                }
            }
        }

        public void leadLocalLog(Object obj, string message) {
            Program.log.writeData(message);
            Type type = obj.GetType();
            PropertyInfo propertyInfo = type.GetProperty("toolStripStatusLabel1");
            if (propertyInfo != null) {
                obj.toolStripStatusLabel1.Text = message;
            }
        }
        
        public void leadLocalLog(Object obj, string message) {
            Program.log.writeData(message);
            if (obj.toolStripStatusLabel1 != null) {
                obj.toolStripStatusLabel1.Text = message;
            }
        }
я как только не пробовал...

Решение задачи: «Проверить существование поля объекта»

textual
Листинг программы
public void leadLocalLog(Form obj, string controlName,  string message) {
            Program.log.writeData(message);
           // controlName = "toolStripStatusLabel1"
           var controls = obj.Find(controlName,true);
            if (controls.Any()){
                           // do ur job
} 
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы