Você não precisa disso. Aqui está o meu raciocínio:
-
Você pode estar subestimando os consumidores da sua API. Cada livro que eu li em linguagens de programação continha uma seção sobre como verificar valores nulos. Muitos idiomas incluem coalescência nula ou recursos de verificação de nulos + açúcar sintático.
-
Você precisa provar para mim (outro programador) por que você precisa desta convenção . Se você não puder provar que ele fornece um fluxo de trabalho significativo ou um benefício de depuração, será necessário usar uma abordagem mais simples. Especialmente se a abordagem mais simples já é ensinada pela comunidade em geral.
var value = proxy.FirstOrDefault(); if (value != null) { ...
-
Considere o significado das expressões idiomáticas que você cria. O código está acima ou abaixo do seu método
ToOption()
? Se eles são quase o mesmo, não faça isso. Apenas faça um trabalho que forneça um benefício significativo. Esta é a ideia básica por trás do YAGNI. -
Considere um debate semelhante na comunidade do NAME sobre a utilidade de aplicar o padrão Promise / A para bibliotecas. Embora não seja equivalente, você pode ver que há alguma descontinuidade no problema.
-
Por fim, gostaria de deixar de lado o fato de permitir que seus consumidores escolham o nível de complexidade que desejam. Se a sua abordagem
ToOption
for claramente superior, os consumidores a implementarão de qualquer maneira.