Automatic .ToString ()?

Ich habe eine Methode wie diese:void m1(string str) und habe eine Klasse wie diese:

public class MyClass
{
    public bool b1 { set; get; }

    //and other properties
}

Warum verursacht der folgende Code keinen Kompilierungsfehler?

IClass2 _class2 = new Class2();
MyClass c1 = new MyClass();
_class2.m1("abcdef" + c1);

Wenn ich es debugge, wurde mir klar, dassc1.ToString() wurde an @ übergebm1. Warum dieses automatische.ToString() ist aufgetreten? Das einzige was ich sagen kann ist, dass m1 in @ definiert wurIClass2 interface und wurde implementiert vonClass2.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage