このジェネリッククラスを考えてみましょう。
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;
}
}
上記のジェネリック版は、以下の非ジェネリック版に比べてどのような本当のメリットがありますか?
public class Request
{
private IOperation _operation { get; set; }
public string Method { get { return _operation.Method; } }
public Request(IOperation operation)
{
_operation = operation;
}
}
IOperation
インターフェイスは次のとおりです。
public interface IOperation
{
string Method { get; }
}