Задать вопрос
@DedliParkurKillerDark

Аналог результатов функции из TypeScript в C#?

В typescript в конце функции пишется, например, ": string || number" (означает что функция вернет либо строку, либо число). Какой есть аналог этому в C#? Просто везде, где бы я не смотрел, функции показывают только с 1 возвращаемым типом, а мне нужно, чтобы из функции возвращался либо "void", либо "Image". Как это сделать?
Возможно я просто не там ищу, я еще маслёнок в C#...
  • Вопрос задан
  • 136 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
freeExec
@freeExec
Участник OpenStreetMap
Возвращаешь либо объект либо null
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Никак. В C# нет никаких юнионов и это пахнет говнокодом.

Если void или картинку, то возвращай картинку или null.

Если нужно строку или число - создавай новый класс или структуру для этого.
Ответ написан
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Как по мне извращение
using System;
					
public class Program
{
	public static void Main()
	{
		try{
		  GetImage(2);
		}
		catch(ArgumentException e){
		  Console.WriteLine( int.Parse(e.Message));
		}
	}
	public static string GetImage(int index){
	  if(index == 1){ return "/img/1";}
	  throw new ArgumentException("5");
	}
}


Еще большее
using System;
					
public class Program
{
	public static void Main()
	{
		Object r = GetImage(1);
		Check(r);
		 r = GetImage(2);
		Check(r);
	}
	public static void Check(Object o){
	   if(o is String) Console.WriteLine("string");
	   if(o is int) Console.WriteLine("int");
		else
		Console.WriteLine(o.GetType());
	}
	public static Object GetImage(int index){
	  if(index == 1){ return "/img/1";}
	  return 5;
	}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы