我希望能够将继承自Role
的类型转换为Role
。例如,RoleWithApiResources
。
我的Convert
函数现在看起来像这样,但不编译:
public static Role Convert<T>(T role) where T : Role
{
var result = new Role();
result.Id = T.Id;
result.Name = T.Name;
result.Description = T.Description;
return result;
}
答案 0 :(得分:4)
根据您的约束,您应该使用role
而不是T
(并使用对象初始值设定项来简化代码):
public static Role Convert<T>(T role) where T : Role
{
var result = new Role
{
Id = role.Id,
Name = role.Name,
Description = role.Description
};
return result;
}
答案 1 :(得分:2)
在您的功能中,您需要使用&#39;角色&#39;参数而不是T
例如:
public static Role Convert<T>(T role) where T : Role
{
var result = new Role();
result.Id = role.Id;
result.Name = role.Name;
result.Description = role.Description;
return result;
}