У меня есть два класса, реализующие IMyInterface
и метод асинхронного возврата типа Task<IMyInterface>
.Условное выражение Тип возврата
Почему я получаю ошибку компилятора «Нет неявного типа преобразования» для моего оператора return, return SomeBooleanDeterminedByTheMethod ? Class1 : new Class2();
и какова наилучшая процедура для решения этой проблемы?
Полный метод:
public static async Task<IMyInterface> MyMethodAsync(Subclass1 Class1Child)
{
var listOfThings = new List<Tuple<int, Class1>>();
await Task.Run(() =>
{
foreach (var item in SomeCollection)
{
var DummyClass1 = new Class1() {IntProperty = 0};
var computationResult = new Tuple<int, Class1>(DummyClass1.IntProperty, DummyClass1);
listOfThings.Add(computationResult);
}
}
try
{
var returnedClass1 = (from items in listOfThings
orderby items.Item1
select items.Item2).FirstOrDefault();
return returnedClass1.BooleanProperty ? returnedClass1 : new Class2();
}
catch ... // Not relevant.
}
class Class1 : IMyInterface
{
public int IntProperty { get; set;}
public bool BooleanProperty => IntProperty % 2 == 1; // So, in my example, BooleanProperty will return false.
}
class Class2 : IMyInterface
{
// This class serves as a separate class to indicate a different Type to be used for my program.
}
interface IMyInterface { }
Просьба указать код. –
Зачем писать о коде, который не работает без предоставления соответствующего кода? –
@EvanTrimboli NDA для моего кода, поэтому мне пришлось бы превратить его в макет, и первоначальная мысль о том, что код внутри метода не вызывает проблемы. Дайте мне секунду, выкиньте пример кода. – AntiTcb