Per chi sono i tipi?
Il compilatore? Si assolutamente. Il compilatore utilizza i tipi per rendere più probabile il corretto funzionamento del programma in fase di runtime, assicurando che i tipi corrispondano, che vengano chiamati metodi effettivamente esistenti e che passino loro i parametri del tipo corretto. Qui, il compilatore sta verificando che stai effettivamente restituendo qualcosa di tipo IMyType
.
L'editor? Di nuovo, si. L'editor usa la compilazione in background e digita le informazioni per aiutarti a scrivere codice. Quando si preme .
dopo _container
utilizza le informazioni sul tipo per indicare che esiste un metodo Resolve
e quali parametri richiede.
Tu? Non così tanto. Abbiamo già visto che il compilatore si assicurerà di restituire qualcosa di tipo IMyType
, quindi perché ti interessa dichiararlo come quel tipo quando il compilatore può elaborarlo e controllarlo per te? Allo stesso modo, l'editor ti spiegherà i metodi sul contenitore, quindi perché ti preoccupi di dichiarare se si tratta di un contenitore Unity o di un altro tipo di contenitore, dato che sai già dal nome della variabile che è un contenitore di qualche tipo e dal editore che ha un metodo Resolve
.
Non c'è alcun problema con la dichiarazione dei tipi per i locali, ma ciò che ReSharper ti dice è che il compilatore può elaborarlo, quindi sono informazioni ridondanti e il tuo codice potrebbe essere più chiaro con tipi impliciti e nomi di variabili validi. Ad esempio, lo scopo di questo codice è meno chiaro rispetto al campione originale?
public static IMyType GetGateWayManager()
{
var container = GetContainer();
var gateWayManager = container.Resolve<IMyType>();
return gateWayManager;
}
fonte
2010-08-27 08:45:15
Che cosa sta dando questo avviso? È il compilatore VS o uno strumento esterno come ReSharper? – codeulike
Il fatto che tu dica "perdere il tipo" suggerisce che potresti trarre vantaggio dalla lettura della documentazione di 'var'. Non significa "variante". – AakashM
sembra decisamente come avvertenza di Resharper ... –