Я бы хотел Reset
, чтобы по умолчанию были установлены значения всех членов моего экземпляра класса CommunicationErrorsDetails
. Этот класс является частью вложенного класса MyNestedClassInstance
.
Это то, что я хотел бы сделать:
MyNestedClassInstance.CommunicationErrorsDetails.Reset()
Это образец моего вложенного класса MyNestedClass
, экземпляр которого MyNestedClassInstance
:
public class MyNestedClass : ICloneable
{
...
/// <summary>
/// Communication errors count
/// </summary>
public class CommunicationErrorsDetailsType : ICloneable
{
public int RetryCount;
public int CRCErrorCount;
public int DataBytesNotExpectedCount;
public int TooMuchDataReceivedCount;
public int ResponseDataAddressNotEqualCount;
public int BytesReceivedInCommunicationStateStartCount;
public int BytesReceivedInCommunicationStateSendFrameCount;
public int BytesReceivedInCommunicationStateDataResponseReceivedCount;
public int ExceptionCount;
public int NakcReceivedCount;
public int AckTimeoutCount;
public int DataTimeoutCount;
public double DataTimeoutRate;
public bool HasCommunicationErrors
{
get => RetryCount > 0
|| CRCErrorCount > 0
|| DataBytesNotExpectedCount > 0
|| TooMuchDataReceivedCount > 0
|| ResponseDataAddressNotEqualCount > 0
|| BytesReceivedInCommunicationStateStartCount > 0
|| BytesReceivedInCommunicationStateSendFrameCount > 0
|| BytesReceivedInCommunicationStateDataResponseReceivedCount > 0
|| ExceptionCount > 0
|| NakcReceivedCount > 0
|| AckTimeoutCount > 0
|| DataTimeoutCount > 0;
}
public object Clone()
{
return MemberwiseClone();
}
internal void Reset()
{
// ... ?
}
}
public CommunicationErrorsDetailsType CommunicationErrorsDetails = new CommunicationErrorsDetailsType();
...
// Other nested classes
...
}
Как мне достичь Reset()
без необходимости заново создавать новый экземпляр и без необходимости сбрасывать вручную все элементы, которые могут быть разных типов?
Все члены являются простыми типами (не классами).
Более того, я не могу изменить структуру всех классов одного типа, потому что у нас несколько лет структурированный код, подобный этому.
Спасибо за вашу помощь. Привет