2010-12-17 12 views

Odpowiedz

22

Jak to:

A() { new A(); } 
+0

Jedna linia, ale mniej znaków i daje * prawdziwy * wyjątek ... +1 (czy nie potrzebuje powrotu 'void' w C#?) – BoltClock

+0

@BoltClock: To jest konstruktor. – SLaks

+0

Ah OK. Widzę, że właśnie dodałeś "nowy". – BoltClock

41
throw new StackOverflowException(); 

Oszukiwanie, wiem ... :)

+0

to najprostszy sposób generowania wyjątków do testowania –

+0

Jajaja ... myślałem w czymś "trochę bardziej dopracowanym", ale to też działa .. – aGuy

+0

@kinjal Dla tego konkretnego wyjątku jest to będzie trudne do przetestowania - nie można uchwycić wyjątku StackOverflowException. –

2
public int Method(int i) 
{ 
    return i + Method(i + 1); 
} 

myślę, że to powinno działać. Ogólnie rzecz biorąc, każda rekursja, która się nie kończy.

5
public static void Main() 
{ 
    Main(); 
} 
4

Zawsze używam tego kodu (ponieważ jest to trudniejsze do wykrycia) :-(

private int _num; 
public int Num { 
    get { return Num; } 
    set { _num = value; } 
} 
+0

+1 To jest pierwsza myśl, którą myślałem – Jonathan

+1

Byłoby jeszcze lepiej, gdyby nazwa pola była "num" (bez prefiksu podkreślenia). ;) – ShdNx

18

Nie najkrótsza ale zabawne :)

public static bool IsNotEmpty(string value) 
{ 
    return !IsEmpty(value); 
} 

public static bool IsEmpty(string value) 
{ 
    return !IsNotEmpty(value); 
} 

public static void Main() 
{ 
    bool empty = IsEmpty("Hello World"); 
} 
+1

Uśmiechnęło mnie idd :) –

1

uruchomić ten kod (rekurencji):

f() { 
     f(); 
    } 
Powiązane problemy