[英]Is it appropriate to use extension methods on types that you own?
我的解决方案中具有以下类,其中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);
}
}
扩展方法是否正确使用? 在您无法访问该类型的情况下,我了解这些需求。 但这对我拥有的类型使用扩展方法有意义吗?
在我看来(尽管这个问题是基于观点的)在一种情况下这样做很有意义:
GetResponse
需要与Response
GetResponse
在不同的程序集中(并且存在有效的原因) 否则,如果出于某些原因希望将代码文件分开,则可以只使用partial
类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.