Sto diventando dipendente dalla scrittura fluente (forse in modo errato originariamente detto "dichiarativamente") e lo sto prendendo per estremi forse poco saggio, ma più scrivo in questo modo più una cosa spicca come completamente incapace di scrivere in questo modo, e questa è la dichiarazione return
.
Qualcosa come quello che voglio scrivere (per esempio):
StartSomewhere
.Get<Something>()
.OrderBy(something => something.SomeProperty)
.Transform(ToSomethingElse)
.ChooseSomeOption("some value")
.Run()
.ReturnIfNull() // impossible!
.ContinueUsingNonNullValue();
Di cosa sono bloccato invece:
if (
StartSomewhere
.Get<Something>()
.OrderBy(something => something.SomeProperty)
.Transform(ToSomethingElse)
.ChooseSomeOption("some value")
.Run()
.IsNull(out var notNullValue)
)
return;
if (
notNullValue
.ContinueUsingNonNullValue()
// etc.
)
return;
Sospetto che non ci sia modo di ottenere ciò che voglio qui oltre a fare qualcosa di veramente avanzato e folle come avvolgere tutto in un Abortable
monad o qualcosa in modo tale che la catena possa essere disattivata a metà strada, consentendo di ignorare le chiamate rimanenti , quindi forse è inutile chiedere, ma chi lo sa.