C# 我怎样才能拥有Nullable<;T>; 公共接口IOperationResult { bool issusccessful{get;set;} 公共字符串消息{get;set;} } 公共接口ICreateCommandOperationResult:IOperationResult { 公共T?插入器{get;set;} }
在数据库中插入记录时,我希望返回插入记录的Id。 但有时也有例外,在这种情况下,我需要在C# 我怎样才能拥有Nullable<;T>; 公共接口IOperationResult { bool issusccessful{get;set;} 公共字符串消息{get;set;} } 公共接口ICreateCommandOperationResult:IOperationResult { 公共T?插入器{get;set;} },c#,.net,generics,C#,.net,Generics,在数据库中插入记录时,我希望返回插入记录的Id。 但有时也有例外,在这种情况下,我需要在InsertedId中发送null 如何操作?您可以应用where T:struct(或者类,如果您使用的是C#8并且需要a),并在ICreateCommandOperationResult界面中用T替换T? 公共接口ICreateCommandOperationResult:IOperationResult 其中T:struct//where T:class { 公共T?插入器{get;set;} } 实
InsertedId
中发送null
如何操作?您可以应用
where T:struct
(或者类
,如果您使用的是C#8并且需要a),并在ICreateCommandOperationResult
界面中用T
替换T?
公共接口ICreateCommandOperationResult:IOperationResult
其中T:struct//where T:class
{
公共T?插入器{get;set;}
}
实施的例子
公共类测试:ICreateCommandOperationResult
{
公共布尔值IsSuccessful{get;set;}
公共字符串消息{get;set;}
公共int?inserteded{get;set;}
}
将您的ICreateCommandOperationResult
设置为T
上的泛型(即ICreateCommandOperationResult
),将T
约束为struct
,然后使用T?
作为插入器的类型,编译器对struct
感到满意,但对struct
不满意class@Enigmativity对我在aswer中指出,在使用可空引用的情况下,它在C#8中是有效的types@PavelAnikhouski-是的,帕维尔,我的评论是针对哈米德的。他可能不明白这一点。
public interface IOperationResult
{
bool IsSuccessful { get; set; }
public string Message { get; set; }
}
public interface ICreateCommandOperationResult<T?> : IOperationResult
{
public T? InsertedId { get; set; }
}