带泛型和不带泛型的方法之间的区别

本文关键字:泛型 区别 之间 方法 | 更新日期: 2023-09-27 18:36:46

有人可以帮助我了解以下方法之间的优缺点(如果有的话),这些方法执行将实体存储到 Azure 的相同功能(在我的情况下)?

public bool Save<T>(string tableName, T entity) where T : TableEntityBase, new()
{
    throw new NotImplementedException();
}

public bool Save(string tableName, TableEntityBase entity)
{
    throw new NotImplementedException();
}

带泛型和不带泛型的方法之间的区别

使用泛型方法,只有在以下情况下才能传递参数 T

  • 它是TableEntityBase
  • 具有公共无参数构造函数

现在您可以确定new T();不会引发异常。


但在非通用方法的情况下

new TableEntityBase();

如果没有无参数构造函数,可能会引发异常