@getfield
Можно ли создать метод, в котором возвращаемый тип будет определятся в самом методе или строгая типизация дотнета не позволит сделать такое?
Возвращаемый тип будет зависеть от того, что придёт в ответе от АПИ (несколько вариантов типов, которые будут явно указаны в самом методе).
Возвращаемый тип будет зависеть от того, что придёт в ответе от АПИ (несколько вариантов типов, которые будут явно указаны в самом методе).
Решения вопроса 0
Ответы на вопрос 6
@profesor08
https://docs.microsoft.com/en-us/dotnet/csharp/pro…
https://docs.microsoft.com/en-us/dotnet/csharp/fun…
https://docs.microsoft.com/en-us/dotnet/csharp/fun…
class User {
public string id;
public string name;
}
public class Program
{
public static T Request<T>(string url) where T : new() {
return new T();
}
public static void Main()
{
var user = Request<User>("https://127.0.0.1");
}
}
@vabka
Возвращаемый тип будет зависеть от того, что придёт в ответе от АПИ (несколько вариантов типов, которые будут явно указаны в самом методе).
Просто сделай класс, в котором будет какой-нибудь флаг, который сообщает о типе контента и N свойств для каждого типа.
Если у тебя только два типа — результат и ошибка, то используй Either
https://habr.com/ru/post/267231/
@sergeyiljin
Есть же обобщения —
<T>
.
@freeExec
Возвращаешь самый базовый тип
object
, но это говнокод. АПИ обычно возвращает заранее известную структуру данных.
@Griboks
Нет, С# не поддерживает объединение типов. Можете обобщить, использовать шаблон или контейнер, наследовать, использовать интерфейс. Но самым правильным решением будет переписать api метод так, чтобы он возвращал заранее известный тип (в этом и есть смысл api).
@HemulGM
Тебе нужны дженерики «
<T>
»