Casting und Verwendung des Schlüsselworts 'as' in der CLR

Bei der Programmierung von Schnittstellen, die ich gefunden habe, mache ich viel Gießen oder Objekttyp-Konvertierung.

Gibt es einen Unterschied zwischen diesen zwei Methoden der Umstellung? Wenn ja, gibt es einen Kosten-Unterschied bzw. wie wirkt sich das auf mein Programm?

public interface IMyInterface
{
    void AMethod();
}

public class MyClass : IMyInterface
{
    public void AMethod()
    {
       //Do work
    }

    //Other helper methods....
}

public class Implementation
{
    IMyInterface _MyObj;
    MyClass _myCls1;
    MyClass _myCls2;

    public Implementation()
    {
        _MyObj = new MyClass();

        //What is the difference here:
        _myCls1 = (MyClass)_MyObj;
        _myCls2 = (_MyObj as MyClass);
    }
}

Auch, was "im Allgemeinen" die bevorzugte Methode?

Kommentar zu dem Problem - Öffnen
Könntest du ein kleines Beispiel dafür, warum bist du mit dem wirft in Erster Linie die Frage, oder vielleicht einen neuen zu starten? Ich bin irgendwie interessiert, warum würden Sie brauchen, die Besetzung für unit-Tests nur. Ich denke, es ist außerhalb des Umfangs dieser Frage, obwohl. Kommentarautor: Erik van Brakel
Ich kann wohl meine unit-test, um dies zu verhindern, müssen für diese. Im Grunde läuft es auf die Tatsache, dass ich eine Immobilie auf meine konkrete Objekt, das nicht in die Schnittstelle. Ich brauche, um das Eigentum, sondern das wirkliche Leben, die Eigenschaft hätte, die von anderen bedeutet. Nicht, dass die Antwort auf Ihre Frage? Kommentarautor: Frank V
Als Patrik Hägne scharfsinnig Punkte unten, es WIRD einen Unterschied. Kommentarautor: Neil

InformationsquelleAutor der Frage Frank V | 2009-01-30

Schreibe einen Kommentar