@Levingstoun

Существует ли в C# | — или между типами?

Подскажите пожалуйста. Работает ли в C# битовый оператор | для типов, как в тайпскрипте.
То есть могу ли я каким-либо способом указать, что в метод может прийти два разных типа, например??
public static void Main(string[] | number[] args)
        {
            //Your code goes here
            Console.WriteLine("Hello, world!");
        }
  • Вопрос задан
  • 277 просмотров
Решения вопроса 1
sarapinit
@sarapinit
Точу водой камень
Нет, пока нельзя. В будущем возможно появится. В случае с Main вам нужно принимать массив строк и парсить их в нужный тип. В других случаях можно использовать object[] или ArrayList и приводить каждый элемент к нужному типу
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Перегрузка методов вам не подходит?
public static void Main(string[]  args)
        {
            //Your code goes here
            W(0);//передаём int
             W("string");//передаём string
        }
void W(string t){
Console.WriteLine(t);
}
void W(int t){
Console.WriteLine(t.ToString());
}
Ответ написан
@vabka
Fullstack dev
В будущем, скорее всего, появятся Discriminated unions, но сейчас такого нет.
Как альтернативы:
1. Перегрузка методов
2. Полиморфизм (в данном случае принимать object[] и в цикле делать switch(x) { case string s: ...; case object o: ...}
Ответ написан
@MaksSmag
В самоучителях целую главу умудрились написать про перегрузку. А Вас почему это не устраивает?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Tennisi Москва
от 170 000 ₽
от 3 000 до 4 000 $
Технология Екатеринбург
от 60 000 до 150 000 ₽
21 окт. 2020, в 22:40
300 руб./за проект
21 окт. 2020, в 22:34
25000 руб./за проект
21 окт. 2020, в 21:24
7000 руб./за проект