У меня есть два класса, где первый класс ссылается на второй класс. Мой вопрос в том, почему во втором классе строка cl.container = this as ClassContainer<MyClass>;
действительно работает, и явный листинг cl.container = (ClassContainer<MyClass>)this;
этого не делает.Почему это вместо того, чтобы работать на литье?
class MyClass
{
public ClassContainer<MyClass> container { get; set; }
}
второй класс:
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
}
}
Когда вы говорите «не работает», это вызывает какие-либо ошибки? – prtdomingo
@prtdomingo он не компилирует –
@Kevin Wallis ищет ответ здесь: http://stackoverflow.com/questions/7504438/why-does-casting-give-cs0030-while-as-works –