Sehen Sie sich den folgenden Code an:
class A
{
public string DoSomething(string str)
{
return "A.DoSomething: " + str;
}
}
class B : A
{
}
static class BExtensions
{
public static string DoSomething(this B b, string str)
{
return "BExtensions.DoSomething: " + str;
}
}
class Program
{
static void Main(string[] args)
{
var a = new A();
var b = new B();
Console.WriteLine(a.DoSomething("test"));
Console.WriteLine(b.DoSomething("test"));
Console.ReadKey();
}
}
Die Ausgabe des Codes ist:
A.DoSomething: test
A.DoSomething: test
Beim Kompilieren gibt es keine Warnungen.
Meine Fragen sind: Warum gibt es keine Warnungen, wenn dieser Code kompiliert und was genau passiert, wenn die DoSomething
Methode aufgerufen wird?