我的解决方案中有以下类,其中的Request
类可以创建Response
实例:
public class Request
{
public Guid Id {get;}
public int UserId {get;}
public string SomeInfo {get;}
public Request(Guid id, int userId, string someInfo)
{
Id = id;
UserId = userId;
SomeInfo = someInfo;
}
public Response GetResponse(string content)
{
return new Response(requestId, content);
}
}
public class Response
{
public Guid Id {get;}
public Guid RequestId {get;}
public string Content {get;}
public Response(Guid requestId, string content)
{
Id = Guid.NewGuid();
RequestId = requestId;
Content = content;
}
}
假设我删除了GetResponse
方法并将其代码移至扩展方法中,如下所示:
public static class RequestExtensions
{
public static Response GetResponse(this Request request, string content)
{
return new Response(request.Id, content);
}
}
扩展方法是否正确使用?在您无法访问该类型的情况下,我了解这些需求。但这对我拥有的类型使用扩展方法有意义吗?
答案 0 :(得分:2)
在我看来(尽管这个问题是基于观点的)在一种情况下这样做很有意义:
GetResponse
由于某些原因(与存在的原因)需要与Response
驻留在不同的程序集中否则,如果出于某些原因想要分离代码文件,则只能使用partial
类。