xem xét lớp generic này:C# generics - những gì đạt được bằng cách làm cho một lớp wrapper chung?
public class Request<TOperation>
where TOperation : IOperation
{
private TOperation _operation { get; set; }
public string Method { get { return _operation.Method; } }
public Request(TOperation operation)
{
_operation = operation;
}
}
gì lợi ích thực hiện các phiên bản generic trên cung cấp hơn này phiên bản không-generic dưới đây?
public class Request
{
private IOperation _operation { get; set; }
public string Method { get { return _operation.Method; } }
public Request(IOperation operation)
{
_operation = operation;
}
}
Giao diện IOperation
là:
public interface IOperation
{
string Method { get; }
}
Gotcha - nói cách khác, nó cho phép bạn 'đóng' hoặc chỉ định kiểu 'Yêu cầu' hạn chế hơn khi được tiêu thụ, nhưng không cần phải tạo các đối tượng' Yêu cầu' tùy chỉnh cho các loại Hoạt động khác nhau .. – MalcomTucker
@ MalcomTucker: Đúng vậy. –