Как правильно сделать класс, в котором очень много полей - C#

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

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

Добрый. Подскажите как правильно создавать класс, в котором будет большое кол-во полей? Что-то типа этого простыни переделать в нормальный вид
  public class Alarm
    {
        #region Поля
 
        protected string _alarmID;
        protected string _physicalState;
        protected string _managementState;
        protected string _shelfId;
        protected string _shelfType;
        protected string _phySlotId;
        protected string _cardId;
        protected string _cardType;
        protected string _sourceType;
        protected string _sourceScheme;
        protected string _portId;
        protected string _portLabel;
        protected string _tpType;
        protected string _signalDiscr;
        protected string _additionalInfo;
        protected string _field1;
        protected string _field2;
        protected string _field3;
        protected string _field4;
        protected string _alarmType;
        protected string _spareField1;
        protected string _severity;
        protected string _category;
        protected string _probableCause;
        protected string _specificProblem;
        protected string _eventType;
        protected string _raisingTimeOn;
        protected string _promotedTimeOn;
        protected string _ackTime;
        protected string _ackUser;
        protected string _raisingTimeOff;
        protected string _promotedTimeOff;
        protected string _clearTime;
        protected string _clearUser;
        protected string _spareField2;
        #endregion
 
        #region Конструкторы
 
        /// <summary>
        /// Создать аварию
        /// </summary>
 
        public Alarm(
          
            string alarmID,
            string physicalState,
            string managementState,
            string shelfId,
            string shelfType,
            string phySlotId,
            string cardId,
            string cardType,
            string sourceType,
            string sourceScheme,
            string portId,
            string portLabel,
            string tpType,
            string signalDiscr,
            string additionalInfo,
            string field1,
            string field2,
            string field3,
            string field4,
            string alarmType,
            string spareField1,
            string severity,
            string category,
            string probableCause,
            string specificProblem,
            string eventType,
            string raisingTimeOn,
            string promotedTimeOn,
            string ackTime,
            string ackUser,
            string raisingTimeOff,
            string promotedTimeOff,
            string clearTime,
            string clearUser,
            string spareField2
            )
        {
            _alarmID = alarmID;
            _physicalState = physicalState;
            _managementState = managementState;
            _shelfId = shelfId;
            _shelfType = shelfType;
            _phySlotId = phySlotId;
            _cardId = cardId;
            _cardType = cardType;
            _sourceType = sourceType;
            _sourceScheme = sourceScheme;
            _portId = portId;
            _portLabel = portLabel;
            _tpType = tpType;
            _signalDiscr = signalDiscr;
            _additionalInfo = additionalInfo;
            _field1 = field1;
            _field2 = field2;
            _field3 = field3;
            _field4 = field4;
            _alarmType = alarmType;
            _spareField1 = spareField1;
            _severity = severity;
            _category = category;
            _probableCause = probableCause;
            _specificProblem = specificProblem;
            _eventType = eventType;
            _raisingTimeOn = raisingTimeOn;
            _promotedTimeOn = promotedTimeOn;
            _ackTime = ackTime;
            _ackUser = ackUser;
            _raisingTimeOff = raisingTimeOff;
            _promotedTimeOff = promotedTimeOff;
            _clearTime = clearTime;
            _clearUser = clearUser;
            _spareField2 = spareField2;
        }
 
        #endregion
 
    }

Решение задачи: «Как правильно сделать класс, в котором очень много полей»

textual
Листинг программы
public enum AlarmField
{
   AlarmId,
   PhysicalState,
   ManagementSate,
   ShelfId
   /// и т.д.
}
 
public class Alarm
{
    Dictionary<AlarmField, string> fields = new Dictionary<AlarmField, string>();
    
    public string this[AlarmField field]
    {
        get 
        {
            string value;
            if(fields.TryGetValue(field, out value))
                return value;
            return null; 
        }
        set { fields[field] = value; }
    }
}

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


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

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

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