Как заставить одну функцию возвращать разные типы?C#

Место общения программистов C#
Ответить
Anonymous
 Как заставить одну функцию возвращать разные типы?

Сообщение Anonymous »

Я очень долго думал об этом вопросе; можно ли написать одну функцию, которая возвращает разные типы для одной и той же операции?
В этом случае у меня есть два класса «Сотрудник» и «Payroll», в которых хранятся данные в файлах JSON. Я хочу, чтобы классы хранились в одном классе JsonMethods, поэтому подход, подобный описанному здесь (с использованием дженериков и наследования от базового класса), неприменим.

Код: Выделить всё

public async Task ReadAllEmployees()
{
string returnText = await File.ReadAllTextAsync(_filePath + "Employees.json");

if ( returnText is not "" )
{
List? aJson = JsonConvert.DeserializeObject(returnText);
if ( aJson != null )
return aJson;
}

return [null];
}

Код: Выделить всё

public async Task ReadAllPayrolls()
{
string returnText = await File.ReadAllTextAsync(_filePath + "Payrolls.json");

if ( returnText is not "" )
{
List? asJson = JsonConvert.DeserializeObject(returnText);
if ( asJson != null )
return asJson;
}

return [null];
}
Я попробовал заменить классы объектом после того, как позволил классам наследовать от Object, что кажется незаконным (и все равно не сработало)
p>
Есть ли какой-нибудь способ заставить это работать, или мне просто нужно придерживаться двух одинаковых функций?


Подробнее здесь: https://stackoverflow.com/questions/790 ... rent-types
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»