Comments 16
Про switch не понял, у меня компилятор ниче не разрешает такого сделать.
0
Компилятор позволяет завершать секцию не только break'ом, но и
goto, return, throw, yield break, continue или даже бесконечным цикломЗавершать секции по-прежнему необходимо.
0
void Main()
{
int a = 1;
switch(a)
{
case 1: Console.WriteLine(1); return;
case 2: Console.WriteLine(2); throw new Exception();
case 3: Console.WriteLine(3); for(;;);
case 4: Console.WriteLine(4); goto Label;
}
Label:Console.WriteLine(5);
}
Этот код компилируется.
{
int a = 1;
switch(a)
{
case 1: Console.WriteLine(1); return;
case 2: Console.WriteLine(2); throw new Exception();
case 3: Console.WriteLine(3); for(;;);
case 4: Console.WriteLine(4); goto Label;
}
Label:Console.WriteLine(5);
}
Этот код компилируется.
+2
Фотографа, сделавшего фото, в начале поста, чуть позднее убило лазером, что слева.
+6
Клевый дядька, чего только стоит его блог и ответы на StackOverflow
+2
C# 1.0 начинал как достаточно простой, современный язык программирования. Очевидно, он ощутил на себе влияние языков C и C++
Java? Нет, не слышал.
-3
А научите меня небезопасной ковариантности массивов =(
А то мне теперь это покоя не дает, что это можно, а я даже не знаю как…
А то мне теперь это покоя не дает, что это можно, а я даже не знаю как…
0
class Animal {}
class Giraffe : Animal {}
class Dog : Animal {}
public class Test
{
static void Main(string[] args)
{
Giraffe[] giraffes = new Giraffe[5];
giraffes[0] = new Giraffe();
Animal[] animals = giraffes;
animals[1] = new Dog();
}
}
ideone.com/GOWJ3W
+2
Что интересно, в Java гораздо хуже ситуация с generic'ами, которые при компиляции вычищаются и в рантайме получаем вместо List<Giraffe> обычный List, в который можно поместить объект любого типа без всяких исключений. Проблема обнаружится только при приведении типов в процессе вытаскивания «жирафов» из списка.
List<Giraffe> giraffes = new ArrayList<Giraffe>();
List list = giraffes;
list.add(new Dog()); // No exception
Giraffe giraffe = giraffes.get(0); // java.lang.ClassCastException: Dog
+2
Sign up to leave a comment.
Интервью с легендой C# Эриком Липпертом