我正在深入研究仿制药,现在我需要帮助.我在下面的'Derived'类中遇到编译错误,如主题标题所示.我看到很多其他类似的帖子,但我没有看到这种关系.有人能告诉我如何解决这个问题吗?
using System;
using System.Collections.Generic;
namespace Example
{
public class ViewContext
{
ViewContext() { }
}
public interface IModel
{
}
public interface IView<T> where T : IModel
{
ViewContext ViewContext { get; set; }
}
public class SomeModel : IModel
{
public SomeModel() { }
public int ID { get; set; }
}
public class Base<T> where T : IModel
{
public Base(IView<T> view)
{
}
}
public class Derived<SomeModel> : Base<SomeModel> where SomeModel : IModel
{
public Derived(IView<SomeModel> …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的MVC C#Entity Framework Application上创建一个通用控制器.
public class GenericRecordController<T> : Controller
{
private DbSet<T> Table;
// ...
public action()
{
// ...
db.Entry(T_Instance).State = System.Data.Entity.EntityState.Modified;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,DbSet < T >和T_Instance行有编译器错误.
类型T必须是引用类型才能将其用作参数.
当我限制它为一个类
Controller where T : class
Run Code Online (Sandbox Code Playgroud)
它解决了.
上述错误意味着什么?
我不是要求解决方案.我想理解为什么会出现这个错误以及为什么限制它来解决它.