ich zwei Methoden, die in meinem Beispiel Kann C# intellisense von Visual Studio einen Hinweis erhalten, zuerst eine bestimmte Methodenüberladung anzuzeigen?
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
}
}
Überlastungen voneinander
sind, ist die GetPrice (Marke, Modell, Jahr) Überlastung billig auszuführen, aber die GetPrice (vinNumber) Methode ist teuer. Das Problem ist, dass die teure Methode die wenigsten Parameter hat und zuerst in C# intellisense angezeigt wird.Beide Methoden sind gültig, aber ich möchte Leute ermutigen, die billige Methode zu nennen. Aber die Leute neigen dazu, nicht alle Überlastungen in Intellisense durchzusehen, bevor sie eine Methode wählen, um anzurufen, und die teure wird zu oft in der Codebasis meines Unternehmens aufgerufen.
Gibt es eine Möglichkeit, Visual Studio anzuweisen, einer bestimmten Methode "IntelliSense-Priorität" zu geben, damit sie zuerst angezeigt wird?
Sie über Ihre allgemeine Frage nicht wissen, aber dieser spezielle Fall vielleicht mit der Benennung zum Beispiel aufgelöst werden kann GetPrice für die billige Version und QueryPrice oder FetchPrice für die teure Version (um anzuzeigen, dass es mit einer Datenbank sprechen wird). Nur ein Gedanke. – itowlson
Und wenn Sie die teure Überladung aus Kompatibilitätsgründen behalten müssen, markieren Sie sie mit EditorBrowsableAttribute (EditorBrowsableState.Never), um sie vor Intellisense zu verbergen. – itowlson
Ich würde mich wundern über die Weisheit von drei Datenbankaufrufen dort. Sicher könnten Sie eine Abfrage schreiben, die alle Daten zurückgibt, die Sie benötigen, während Sie die Datenbank nur einmal treffen. –