C# stati c неявный оператор для простого преобразования одного объекта типа T в новый список <T> - PullRequest
1 голос
/ 22 апреля 2020

Примите во внимание следующее:

public class DataPacket
{
    public DataPacket(string name) { /* ... */ }

    public static implicit operator List<DataPacket>(DataPacket data) {
        return new List<DataPacket> { data };
    }
}

Всегда ли безопасно обрабатывать какой-либо один пакет данных, как если бы он был списком (если я не против новой реализации)?


Вот немного контекста:

У меня есть класс, который обычно включается в списки для всех конвейеров, обрабатывающих этот класс. Но иногда хочется добавить только один новый объект в один из этих конвейеров.

Чтобы сделать это более плавным, я использую неявный оператор. Вот пример кода:

public void Pipline(List<DataPacket> packets)
{
    // ... do stuff with packets
}

public void Main()
{
    // Pipleine A and B
    Pipline(new List<DataPacket>
    {
        new DataPacket("A"),
        new DataPacket("B"),
    });

    // Pipline only C
    Pipline(new DataPacket("C"));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...