La domanda qui non riguarda la ricerca di qualcosa che dovrebbe o non deve generare un'eccezione o restituire null, si tratta di come denominare i metodi.
Era così che gli IDE non erano davvero una cosa. Questo ha reso tutto ok, ad esempio includere il tipo restituito nei nomi dei metodi (per lo sviluppatore ricordare cosa sta per fare). Avresti qualcosa di simile
public string StringFindItemNameInDomain()
Potresti anche includere informazioni pubbliche / private. Credo, ma non citarmi su questo, che è ancora pratica comune in c ++ far precedere i nomi dei membri privati con m_. Oggi tieni il mouse su una chiamata al metodo e ottieni tutte le informazioni di cui hai bisogno. L'accesso, il tipo di ritorno e i parametri.
Il problema che stai avendo riguarda l'ottimizzazione / la ridondanza. Vuoi ottimizzare il tuo nome del metodo per la leggibilità, ma non vuoi avere ridondanze.
Questo si collega alle funzioni di passaggio del mouse dell'IDE perché se vedo una chiamata come
TryFindInDomain(out somestring);
Alzo il mouse sopra di esso e noto il parametro itemName, ora so cosa fa. Tuttavia quando vedo una chiamata a
TryFindItemNameInDomain(out somestring);
Non ho bisogno di fluttuare, posso leggerlo così com'è. Penso che sia una questione di gusto / stile.
Tuttavia, potremmo provare a trovare anche altre cose nel dominio. Questo è dove diventa interessante. Se un tipo in C # lo supporta, il metodo viene sempre chiamato TryParse / Parse. Ho solo bisogno di sapere dell'esistenza di questi 2 metodi.
Se aggiungi un altro metodo al nostro esempio attuale come
public bool TryFindCarInDomain(out Car car)
Ora ho bisogno di sapere che ci sono 2 metodi.
Se rifatto questi metodi a questo:
public bool TryFindInDomain(out string itemName)
public bool TryFindInDomain(out Car car)
Il compilatore si prende cura dei tipi, ho solo bisogno di sapere circa 1 firma del metodo che posso usare per trovare roba di alcuni tipi. Se mai dovessi trovare il tipo x lì dentro, ci provo. Se il compilatore mi dice che il tipo non è disponibile, aggiungo un altro metodo per il tipo x.
Quindi, a mio parere, è meglio non includere itemName nella firma.