Microsoft.CodeAnalysis.FxCopAnalyzers
和
CA1000
规则如下。
不要在泛型类型上声明静态成员。
如何纠正违规行为
若要修复违反此规则的情况,请删除静态成员或将其更改为实例成员。
不要抑制来自此规则的警告。以易于理解和使用的语法提供泛型可以减少学习所需的时间,并提高新库的采用率。
我的代码如下。这个
Success
方法是触发规则的方法。
public class ResultResponse
{
internal ResultResponse(bool isSuccess)
{
IsSuccess = isSuccess;
}
public bool IsSuccess { get; }
public static ResultResponse Failed()
=> new ResultResponse(false);
}
public class ResultResponse<T> : ResultResponse
{
internal ResultResponse(T value, bool isSuccess)
: base(isSuccess)
{
Value = value;
}
public T Value { get; }
public static ResultResponse<T> Success(T value)
=> new ResultResponse<T>(value, true);
}
成功
方法转换为非泛型类型是否正确?
public class ResultResponse
{
internal ResultResponse(bool isSuccess)
{
IsSuccess = isSuccess;
}
public bool IsSuccess { get; }
public static ResultResponse Failed()
=> new ResultResponse(false);
public static ResultResponse<T> Success<T>(T value)
=> new ResultResponse<T>(value, true);
}
public class ResultResponse<T> : ResultResponse
{
internal ResultResponse(T value, bool isSuccess)
: base(isSuccess)
{
Value = value;
}
public T Value { get; }
}