您可以通过另外创建一个非泛型类来实现这一点
ResultsPair
使用通用方法
Create
CreateSuccess
CreateError
:
public static class ResultsPair
{
public static ResultsPair<T> CreateSuccess<T>(T value) => Create(ResultsItem.Success(string.Empty), value);
public static ResultsPair<T> CreateError<T>(ResultsItem result) => Create(result, default(T));
public static ResultsPair<T> Create<T>(ResultsItem result, T value)
{
return new ResultsPair<T>(result, value);
}
}
ResultsPair.CreateSuccess(newUser);
ResultsPair.CreateError<User>(ResultsItem.Error("A server connection error has occured."));
ResultsPair.Create(ResultsItem, User)
只是澄清一下:您的完整代码如下所示:
public class ResultsPair<T>
{
public T Value { get; set; }
public ResultsItem Result { get; set; }
public ResultsPair(ResultsItem result, T value)
{
Result = result;
Value = value;
}
}
public static class ResultsPair
{
public static ResultsPair<T> CreateSuccess<T>(T value) => Create(ResultsItem.Success(string.Empty), value);
public static ResultsPair<T> CreateError<T>(ResultsItem result) => Create(result, default(T));
public static ResultsPair<T> Create<T>(ResultsItem result, T value)
{
return new ResultsPair<T>(result, value);
}
}