gpt4 book ai didi

c# - 在方法中访问从类(public class TheClass)传入的类型

转载 作者:行者123 更新时间:2023-11-30 22:05:49 24 4
gpt4 key购买 nike

例如我有一个类:

 public class GenericController<T> : ApiController where T : BaseContext 
{
public string Get(int id)
{
try
{
var obj = dataRepository.Get<T>(id);

responseMessage.SetGetSuccess(obj);
}
catch (Exception e)
{
responseMessage.SetGetUnsuccess(e);
}
return responseMessage.ToJsonString();
}
}

这可能吗?T在方法中不被识别

错误信息是这样的:

Error   16  'T' must be a non-abstract type with a public parameterless constructor in order to use it as parameter 'T' in the generic type or method 'AppCore.NHibernateBases.DataRepositories.Interfaces.IDataRepository.Get<T>(int)' C:\Users\SeanPC\Google Drive\SideProject\DataAPI\DataAPI\Controllers\GenericController.cs   44  27  DataAPI

最佳答案

T在您的方法中被识别。问题不同。它不适合 Get 上的通用约束集您尝试调用的方法。

'T' must be a non-abstract type with a public parameterless constructor in order to use it as parameter 'T' in the generic type or method 'AppCore.NHibernateBases.DataRepositories.Interfaces.IDataRepository.Get<T>(int)'

为了让它工作,你必须在你的类上添加相同的约束:

public class GenericController<T> : ApiController where T : BaseContext, new()

关于c# - 在方法中访问从类(public class TheClass<T>)传入的类型<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24129002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com