我想在另一个泛型类型中使用通用类型。
但是遇到以下异常:
类型'MockManagers.ToPos'不能用作泛型类型或方法'MockManagers.IMockManager<Req,Res>'中的类型参数'Res'。 从'MockManagers.ToPos'到'MockManagers.MockResponseObject<System.IComparable>'没有隐式引用转换。
我尝试了一些选项来解决这个问题,但都没有成功。 这个参考文献建议将内部通用类型作为参数传递给更高级别的通用类型。这是唯一的解决方案吗?
代码:
我的接口:
/// <summary>
/// Represents IMockManager for mock object creation object.
/// </summary>
/// <typeparam name="Req">The request object Type.</typeparam>
/// <typeparam name="Res">The response object type.</typeparam>
public interface IMockManager<Req, Res>
where Req : MockRequestObject
where Res : MockResponseObject<IComparable>
{...//interface definitions}
对象实现:
/// <summary>
/// Represents Mock response for a request object
/// </summary>
public class ToPos : MockResponseObject<byte[]>
{... //implementation}
public class MockBaseObject
{
public int Id { get; set; }
}
public class MockResponseObject<T> : MockBaseObject
{
/// <summary>
/// The response content.
/// </summary>
public T Content { get; set; }
/// <summary>
/// Res creation date.
/// </summary>
public DateTime CreationDate { get; set; }
}
byte[]
一定是IComparable
吗?我认为它们的数组不应该是。如果你移除Res
的限制,它能工作吗? - Rup<Generic>
这样的标记会变得隐藏)。我不会再做一遍,但请您自己完成。 - Damien_The_UnbelieverIMockManager
接口?_roolyeye_接口是在哪里实现的? - Alex FIMockManager<MockRequestObject, ToPos> foo = null;
。 - Rup