Dziś znalazłem coś w starym kodzie. Ma "statyczną nową" dla jednej funkcji. To wygląda tak.Jaki jest sens modyfikatora "statycznego nowego" dla funkcji?
class Foo
{
public static void Do()
{
Console.WriteLine("Foo.Do");
}
}
class Bar: Foo
{
public static new void Do()
{
Console.WriteLine("Bar.Do");
}
}
ja nie rozumiem statyczną nowego modyfikator dla metody w klasie BarCzy. W języku C# metoda statyczna może być wywoływana tylko z nazwą klasy zamiast nazwą obiektu. Tak więc, nie sądzę, by istniała jakakolwiek różnica między posiadaniem "nowego" a nie.
Ogólnie, jeśli jakaś składnia nie jest konieczna, C# po prostu traktuj to jako błąd. Ktoś ma pojęcie o tym, dlaczego C# pozwala na taką składnię?
Warto zauważyć, że to jedyne, co powstrzymuje ostrzeżenie. Żadnych innych efektów. –
Dobra uwaga. Dodałem to do anwer. –
a to tylko pomija ostrzeżenie, robi to wyraźnie (w celu uniknięcia pomyłki), sprawdź moją odpowiedź – eglasius