Свойства байтового массива C # - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть такой объект:

public class CustomObject{

    public byte[] FieldA {private get; set;}
    public IPAddreess FieldB {private get; set;}

}

FieldA - представление байта FieldB.

Я создаю этот объект из двух источников данных.Один из двоичного файла, где мне нужно быть быстрым, тогда я предпочитаю устанавливать только FieldA.Другой - в приложении, где я получаю данные только в «формате FieldB».

Мне нужна такая функция:

public IPAddress GetField(){
   if (FieldB != null)
       return FieldB;
   FieldB = new IPAddress(FieldA);
   return FieldB;
}

Для упрощения я использовал преобразование IP-адреса, нообычно у меня есть более сложные операции.

Это правильный способ сделать это?Или есть какой-то другой способ, который может упростить этот?Я использую .NET CORE Заранее спасибо.

1 Ответ

0 голосов
/ 20 ноября 2018

Вы можете сделать это в FieldB, без явного написания метода get:

private IPAddreess _fieldB;
public IPAddreess FieldB 
{
    get
    {
        if (_fieldB == null)
        {
            _fieldB = new IPAddress(FieldA);
        }
        return _fieldB;
    }
    set
    {
        _fieldB = value;
    }
}

В этом коде используется личное поле _fieldB для хранения значения свойства. После извлечения свойства оно либо возвращает значение, уже сохраненное в поле, либо присваивает его на основе содержимого FieldA, а затем возвращает его.

...