Хорошо, скажите, что у меня есть следующие простые классы:
public interface IResult<T>
{
T Results { get; set;}
string Message { get; set;}
}
public class Result<T> : IResult<T>
{
T Results { get; set;}
string Message { get; set;}
}
public class Result2<T> : IResult<T>
{
T Results { get; set;}
string Message { get; set;}
}
Теперь, когда я хочу вызвать какой-то метод для возврата IResult, какой путь верен?
public class TestClass
{
public bool TryDoSomething(out IResult<bool> result)
{
// Do stuff
result.Message = "Out!";
return true; // for example
}
public IResult<bool> DoSomething(IResult<bool> result)
{
// Do Stuff
result.Message = "Sent in!";
result.Result = true;
return result;
}
public IResult<bool> DoSomething()
{
// Do Stuff
IResult<bool> result = new Result<bool>();
result.Message = "I'm a Result!";
result.Result = true;
return result;
}
}
Теперь скажитеЯ на самом деле хочу Result2, лучше ли его создать и отправить в качестве параметра (методы # 1 или # 2) или создать новый Result, но преобразовать его в IResult, а затем в Result2, как в методе # 3?
public class GetResults
{
public void GetResults()
{
Result2<bool> results = new Result2<bool>();
if (TryDoSomething(out results))
{
Debug.WriteLine(results.Message);
}
results = DoSomething(results);
if (results.Result) Debug.WriteLine(results.Message);
results = DoSomething();
if (results.Result) Debug.WriteLine(results.Message);
}
}
Так что лучше создать мою реализацию интерфейса в методе или отправить ее в качестве параметра?