インターフェイスまたは抽象クラスを別のインターフェイスのメソッドの「out」パラメータとして使用するにはどうすればよいですか?インターフェイスを別のインターフェイスのoutパラメータとして使用し、実際にメソッドを呼び出すときに、そのインターフェイスを実装するクラスを受け入れるようにすべきではありませんか?
boolを返し、「Response」オブジェクトにデータを設定するメソッドを持つTransactionインターフェースが必要ですが、そのresponseオブジェクトは、Transactionインターフェースの実装ごとに異なる派生オブジェクトです。前もって感謝します。
namespace csharpsandbox
{
class Program
{
static void Main(string[] args)
{
TransactionDerived t = new TransactionDerived();
t.Execute();
}
}
public interface ITransaction
{
bool Validate(out IResponse theResponse);
}
public interface IResponse { }
public class ResponseDerived : IResponse
{
public string message { get; set; }
}
public class TransactionDerived : ITransaction
{
public bool Validate(out IResponse theResponse) {
theResponse = new ResponseDerived();
theResponse.message = "My message";
return true;
}
public void Execute()
{
ResponseDerived myResponse = new ResponseDerived();
if (Validate(out myResponse))
Console.WriteLine(myResponse.message);
}
}
}