c# - C#,为什么我不能从接口访问继承类中的类(通用参数)成员
问题描述
任何人都可以帮助我吗?
我创建了一个接口,使用一个类作为参数,因为我需要在SQL数据库中保存不同的表,所以我想创建一个方法来将数据保存到SQL数据库中。
public interface IDataAdapter {
void SaveExistingData<T>(T t);
}
我创建了另外 4 个类,如 BrandAdapter 类、ProuductionAdapter 类、SupplyAdapter 类和 OrderAdapter 类,这 4 个类都继承自接口 IDataAdapter。
public class BrandAdapter : IDataAdapter {
public void SaveExistingData<Brand>(Brand updatedBrand) {
string sql = "UPDATE tblBrands SET " + "brandName=@brandName " +
$"WHERE brandID={updatedBrand.brandId}"; //ERROR is at updatedBrand.brandId
using (var connection = Helper.CreateDatabaseConnection()) {
connection.Execute(sql, updatedBrand);
}
}
}
现在访问updatedBrand.brandId,IDE提示出错,无法访问Brand类中的所有成员,而且“Brand”是深黄色,按F12无法访问其定义,看起来像系统没认出来。
如果你只创建一个品牌,没关系,我可以使用品牌类的所有成员,但是当我使用泛型时,就不行了。因为我想用另一个类作为参数,所以我尝试使用泛型。
提前致谢。
解决方案
这个怎么样 ?
public class Brand
{
public int brandId { get; set; }
}
public interface IDataAdapter<T>
{
void SaveExistingData(T t);
}
public class BrandAdapter : IDataAdapter<Brand>
{
public void SaveExistingData(Brand updatedBrand)
{
int abcd = updatedBrand.brandId;
}
}
推荐阅读
- php - 方法 App\Http\Controllers\EspecialidadesController::show 不存在
- mariadb - MariaDB 子查询和分组的奇怪结果(这绝对是错误)
- java - 如何解析包含示例@Wordhere的json
- c++ - 在 C++ 中使用 google test 测试自定义断言的最佳方法是什么?
- r - R:根据输入值与其他列的接近程度从数据框中的第一列返回值
- postgresql - BRIN 索引是否可以替代表分区?
- machine-learning - Azure ML 自定义映像标记和注册表
- configuration - Windows 上的 Snort 配置
- laravel - Laravel API 得到空白响应
- .net - 带有 libusbdotnet 依赖项的 Linux 上的 dotnet