我已经为此奋斗了一段时间,所以任何帮助将不胜感激。这是我在 C# .NET 4.0 上遇到的情况。
public interface ITableBusinessLogicLayerIn<in TTableRecord> : IBusinessLogicLayer
where TTableRecord : ITableRecord
{
// No definition
}
public interface ITableBusinessLogicLayerOut<out TTableRecord> : IBusinessLogicLayer
where TTableRecord : ITableRecord
{
// No definition
}
我有一个实现两个接口的对象。代码编译得很好。但是在运行时,我可以按如下方式转换此对象:
(ITableBusinessLogicLayerOut<ITableRecord>)obj
但不是这样:
(ITableBusinessLogicLayerIn<ITableRecord>)obj
这非常令人困惑,我不确定我做错了什么。有人请指出我正确的方向。谢谢!