【发布时间】:2023-04-03 03:20:01
【问题描述】:
您好,我的项目中有以下代码。
if (response == null || response.StatusCode != HttpStatusCode.OK)
return new GetDictionaryPlResponse
{
Responses = new Responses
{
IsSuccess = false,
ResponseMessage = "There response data is invalid!"
}
};
我正在尝试使用 Generic 来简化此操作,并已完成以下操作。
if (response == null || response.StatusCode != HttpStatusCode.OK)
{
var returnValue = ReturnNullFoundClass
.ResponseType<GetDictionaryPlResponse>();
returnValue.Responses = ReturnNullFoundClass.ResponseNullFound();
return returnValue;
}
这里是扩展类。
public static class ReturnNullFoundClass
{
public static Responses ResponseNullFound()
{
return new Responses
{
IsSuccess = false,
ResponseMessage = "There response data is invalid!"
};
}
public static T ResponseType<T>() where T : new()
{
return new T();
}
}
我想知道是否有一种方法可以使用 Func 方法而不是声明 3 行来进一步简化。
任何帮助将不胜感激。
【问题讨论】:
-
你指的是哪3行?
-
你可以根据 HttpStatusCode 创建一个响应工厂
-
var returnValue = ReturnNullFoundClass .ResponseType
(); returnValue.Responses = ReturnNullFoundClass.ResponseNullFound();返回返回值; -
你能给我一个ResponseFactory的例子吗?或任何其他方式
标签: c# asp.net linq generics delegates