6

在此处输入图像描述

在上图中,您可以看到来自代码合同的警告。我不认为这是合法的,因为this永远不可能null

这是一个错误还是我错过了什么?


此属性是以下类的成员:

public class NHibernateIQueryableQueryBase<TEntity, TQuery, TQueryInterface>
    : IQuery<TEntity>, IFluentQueryInterface<TEntity, TQueryInterface>
    where TQuery : NHibernateIQueryableQueryBase<TEntity, TQuery,
                                                 TQueryInterface>,
                   TQueryInterface
    where TQueryInterface : IQuery<TEntity>

更新:
将属性更改为以下内容仍会显示警告 - 在线return result;

public TQueryInterface And
{
    get
    {
        var result = this as TQuery;
        return result;
    }
}
4

2 回答 2

1

分析不明白,this保证执行TQuery
因此,它警告您,您最终可能会null引用接口类型,并将其作为struct实现该接口的 a 返回:

您需要添加参数: class的约束TQueryInterface

于 2012-11-08T17:24:30.373 回答
0

基于这个问题,我会说你需要指定如果演员阵容失败会发生什么。

尝试return this as TQuery,因为as如果转换失败,运算符将返回 null,而显式转换将引发错误。

于 2012-11-07T16:47:15.110 回答