I am learning C# and .net and came across this usage of "where":
public class DbContextOptions<TContext> : DbContextOptions where TContext : DbContext
Why not simply say
public class DbContextOptions<DbContext> : DbContextOptions
Are they not equivalent? Or I am totally missing some aspect of this?
regards,
CodePudding user response:
No, they are doing different things. The second one isn't doing what you think it is and forcing the generic type to be a DbContext. Instead, it's just naming the generic type inside that class as DbContext. Whether you call it TContext, DbContext or Bob it doesn't make any difference as the name is only used inside the class. But using DbContext will clash with the "real" DbContext type. So you would still need the generic type constraint.
