Примите во внимание следующее:
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"));
}