2013-10-20 51 views
0

我想調用一個方法打開並顯示一個對話窗口,詢問一個問題然後返回答案。這是我的嘗試,但迄今爲止它失敗了。從yes_no對話框返回結果的無效?

觀察代碼:

using System; 
using System.Windows.Forms; 

class mainClass { 
    static public void Asker() { 
     var uInput = MessageBox.Show(
      "Do you like people?", 
      "Sir Askscelot", 
      MessageBoxButtons.YesNo, 
      MessageBoxIcon.Question 
     ); 
     return uInput; 
    } 

    static void Main() { 
     var result = Asker(); 
     if (result == DialogResult.No) { 
      Console.WriteLine("Why?!"); 
     } 
     else { 
      Console.WriteLine("Good thing!"); 
     } 
    } 
} 

觀察錯誤:

enter image description here

注:我有點新的C#,所以我不知道是否還有更多的東西錯我的代碼除了這個錯誤我得到。

回答

1

Asker的返回類型在您的代碼中被列爲void,這表示該方法不返回任何結果。但是,您正在返回一個DialogResult - 這是一個錯誤。一個方法不能返回一個值,也不能返回一個值。

Asker方法需要被聲明爲:

static public DialogResult Asker() { 
+0

非常感謝!它現在有效。 我確實懷疑......如果我不知道該方法會返回什麼呢?如果它可以返回多個東西呢?這個問題沒有真正的關聯,因爲我現在不需要這些知識。我只是好奇;) – DanielTA

+1

一個方法只能返回一個值。它可以返回一個'object',它是所有類型的基類,因此它可以存儲任何東西。通常你會知道什麼類型的方法將返回。 – shf301

+0

通常的確如此。 +1謝謝。 – DanielTA