I have two classes, where the first class references the second class. My question is, why in the second class, the line cl.container = this as ClassContainer<MyClass>;
does work and the explicit cast cl.container = (ClassContainer<MyClass>)this;
does not.
class MyClass
{
public ClassContainer<MyClass> container { get; set; }
}
second class:
class ClassContainer<T> where T : MyClass
{
public ClassContainer()
{
MyClass cl = new MyClass();
cl.container = this as ClassContainer<MyClass>; // works
cl.container = (ClassContainer<MyClass>)this; // does not work
}
}