Как правильно сделать класс, в котором очень много полей - 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; }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д