Upozornění kompilátoru (úroveň 1) CS0809
Zastaralý člen member 'memberA' přepisuje zastaralého člena 'memberB'.
Člen, který je označen jako zastaralý, by obvykle neměl přepsat člen, který není označen jako zastaralý. Toto upozornění se vygeneruje v sadě Visual Studio 2008, ale ne v sadě Visual Studio 2005.
Obsolete
Odeberte atribut z přepsáného členu nebo ho přidejte do člena základní třídy.
// CS0809.cs
public class Base
{
public virtual void Test1()
{
}
}
public class C : Base
{
[System.Obsolete()]
public override void Test1() // CS0809
{
}
}
Všimněte si, že upozornění CS0809
kompilátoru povede k žádnému CS0618
upozornění při skutečném volání zastaralé metody.
V následujícím příkladu kompilátor nebude varovat o zastaralé metodě Test
, protože deklarace, která je rozpoznána kompilátorem při volání je v základní třídě Base
, nikoli odvozené třídy Derived
:
class Base
{
public virtual void Test() {}
}
class Derived : Base
{
[System.Obsolete()]
public override void Test() { }
}
static class Program
{
public static void Main()
{
Derived derived = new();
b.Foo(); // No CS0618
}
}
Pokud chcete tento problém vyřešit, přidejte Obsolete
také atribut do základní třídy.
Zpětná vazba k produktu .NET
.NET je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: