2016-03-30 16 views
0
Random rd = new Random(); 
int question; 
question = rd.Next(1,2); 
if(question ==1) 
{ 
    label1.Text = "What is your name?"; 
} 
if(question ==2) 
{ 
    label1.Text = "How old are you?"; 
} 

Daha kısa yapmanın bir yolu var mı? Bunu bu şekilde yapmam gerekiyor, ancak daha kısa seçeneği, tercihen ifs olmadan bulun.ifs olmadan rasgele değer?

+1

Koşullu operatörü kullanmak için iyi bir yer gibi görünüyor. Http://csharpindepth.com/Articles/Chapter12/Random.aspx –

+0

'u da okumak isteyebilirsiniz. Bu, buraya yerleştirilmelidir: http://codereview.stackexchange.com/ –

cevap

8

Oluşturulan sayısına göre bir dizi ve dizine alınması için Dizelerinizi taşıyabilirsiniz:

string[] texts = 
{ 
    "What is your name?", 
    "How old are you?" 
}; 

int index = rd.Next(0, texts.Length);    
label1.Text = texts[index]; 
0

{tamamen alaycı cevap} Sen daha kısa istemek

?

label1.Text = new Random().Next(1,2) == 1 ? "What is your name?" : "How old are you?"; 

hakkında ben kısa iyi daima olmadığını göstermek için bu kullanıyorum nasıl. Kodunuz derlenir, anlaşılması kolaydır ve doğru sonuçları üretir (modulo new Random()'un sıkışık döngüde birden fazla kez çağrılması olasılığını).