Mam dwie metody, które są przeciążenia siebieCzy C# intellisense programu Visual Studio może dać wskazówkę, aby wyświetlić najpierw pewne przeciążenie metody?
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
}
}
W moim przykładzie, getPrice (marka, model, rok) przeciążenie jest tani do wykonania ale metoda getPrice (vinNumber) jest kosztowne. Problem polega na tym, że droga metoda ma najmniejszą liczbę parametrów i pojawia się najpierw w C# intellisense.
Obie metody są ważne, ale chcę, aby zachęcić ludzi do wywołać tanią metodę. Jednak ludzie często nie przeglądają wszystkich przeciążeń w Intellisense przed wyborem metody wywoływania, a kosztowny jest zbyt często wywoływany w bazie kodu mojej firmy.
Czy istnieje jakiś sposób powiadomić Visual Studio dać „priorytet intellisense” do konkretnej metody, dlatego pojawia się po raz pierwszy?
nie wiedzą o swojej ogólne pytanie, ale ten konkretny przypadek może być może być rozwiązana z nazewnictwa np GetPrice dla taniej wersji i QueryPrice lub FetchPrice dla drogiej wersji (aby wskazać, że zamierzasz porozmawiać z bazą danych). Tylko myśl. – itowlson
Jeśli zachodzi potrzeba zachowania kosztownego przeciążenia w celu zapewnienia zgodności, należy zaznaczyć go przy pomocy EdytoraBrowsableAttribute (EditorBrowsableState.Never), aby ukryć go przed Intellisense. – itowlson
Zastanawiam się nad mądrością posiadania trzech połączeń z bazami danych. Na pewno można napisać zapytanie, które zwróci wszystkie potrzebne dane, jednocześnie uderzając w bazę danych tylko raz. –