public interface IMyControl<in T> where T : ICoreEntity
{
void SetEntity(T dataObject);
}
public class MyControl : UserControl, IMyControl<DataObject> // DataObject implements ICoreEntity
{
void SetEntity(T dataObject);
}
Все до сих пор, но почему это создает нуль?Контравариантность не работает
var control = LoadControl("~/Controls/MyControl.ascx"); // assume this line works
IMyControl<ICoreEntity> myControl = control;
MyControl теперь нулевой ...
Все это не нормально до сих пор. Этот код даже не компилируется. Где T объявлено во втором классе? Было ли это указано DataObject вместо T? –