Ho due metodi che sono sovraccarichi di ogni altraÈ possibile fornire a C# intellisense di Visual Studio un suggerimento per visualizzare prima un certo overload di metodi?
public class Car
{
public int GetPrice(string vinNumber)
{
string make = Database.GetMake(vinNumber); // expensive operation
string model = Database.GetModel(vinNumber); // expensive operation
int year = Database.GetYear(vinNumber); // expensive operation
return this.GetPrice(make, model, year);
}
public int GetPrice(string make, string model, int year)
{
// Calculate value and return
}
}
nel mio esempio, il GetPrice (marca, modello, anno) di sovraccarico è a buon mercato per l'esecuzione, ma il metodo GetPrice (vinNumber) è costoso. Il problema è che il metodo costoso ha il minor numero di parametri e compare prima nell'intelligenza C#.
Entrambi i metodi sono validi, ma desidero incoraggiare le persone a chiamare il metodo economico. Ma le persone tendono a non guardare attraverso tutti i sovraccarichi di Intellisense prima di scegliere un metodo per chiamare, e quello costoso viene chiamato troppo spesso nella base di codice della mia azienda.
C'è un modo per dire a Visual Studio di dare "priorità intellisense" a un metodo particolare in modo che venga visualizzato per primo?
non sappiamo circa la vostra domanda di carattere generale, ma questo caso specifico potrebbe forse essere risolto con la denominazione per esempio GetPrice per la versione economica e QueryPrice o FetchPrice per la versione costosa (per suggerire che andrà a parlare con un database). Solo un pensiero. – itowlson
E se è necessario mantenere il costoso sovraccarico per compatibilità, contrassegnarlo con EditorBrowsableAttribute (EditorBrowsableState.Never) per nasconderlo da Intellisense. – itowlson
Mi chiedo la saggezza di avere tre chiamate al database lì. Sicuramente potresti scrivere una query che restituisce tutti i dati di cui hai bisogno mentre colpisci il database una sola volta. –