2013-07-22 62 views
0

我遇到的問題了解C#方法的語法 - 特別是"must return something"錯誤。方法返回類型的用途

我有這樣的方法:

public static class Connection 
{ 
    public static List<string> getClients() 
    { 
     List<string> clients = new List<string>(); 
     return clients; 
    } 
} 

的方法不正確,因爲我得到invalid expression term "return",所以我完全不知道該怎麼辦。有人能解釋我這個公共空白等是如何工作的嗎?

另外,爲什麼我不能做到以下幾點?

public getClients() 
    { 
     List<string> clients = new List<string>(); 
     return clients; 
    } 

我得到一個錯誤說method must have a return type

+4

你的第一個代碼示例不應該給那個(或)錯誤信息。你確定你的真實代碼沒有什麼不同嗎?你的文件在頂部是否包含'using System.Collections.Generic;'? –

+0

您能否向我們展示產生錯誤的* exact *代碼:'無效表達式項'返回'' –

+0

Acutally第一個錯誤解決了抱歉。 –

回答

5

每一個方法都需要有一個返回類型,或者返回類型爲void聲明。

如果你不想返回任何東西,你將有一個void返回類型,像下面...

public void printSomething(string something) 
{ 
    System.out.println(something); 
} 

如果你想返回的東西,你必須聲明返回類型,像下面...

public string returnSomething() 
{ 
    string something = "something"; 
    return something; 
} 

因此,對於你來說,如果你正在返回「clients」,這是List<string>類型,那麼你需要聲明返回類型,像下面...

public List<string> getClients() 
{ 
    List<string> clients = new List<string>(); 
    return clients; 
} 
+0

謝謝,這會幫助我很多! –

1

的第一段代碼應該工作。

如果你不想從一個函數返回任何東西,使它返回void:

public void DoWork() { 
    int i = 1 + 1; 
} // Don't return anything. 
+1

這不是OP要求的所有 – chancea

+1

「如果有人能解釋我這個公共空白等是如何工作的?」 – JLe

+0

你的回答沒有描述它是如何工作的,它描述了你什麼時候想要使用void – chancea

2

你正在使用什麼被稱爲返回類型。當你定義一個方法時,你可以設置一個類型(比如整型,位圖,字符串,甚至是一個自定義類)作爲一個值返回。這樣一來,你可以做到以下幾點:

int number = Average(); 

對於不返回一個值,你可以設置無效關鍵字表示這個方法執行操作的方法,但沒有得到一個明確的結果。上面的Average()方法在完成時返回一個int,而void不返回任何內容。

此外,公共靜態是關鍵字的形容詞來描述你的方法,無論是無效或不。公共是指其隱私(或代碼的哪些部分可以使用它),而靜態是指一種​​方法的生命週期和參考。

1

在第二個代碼中出現錯誤method must have a return type,因爲您沒有返回列表,但返回類型不存在於方法簽名中。對於沒有返回類型的方法,您應該使用void

public void method()//void or no return type 
{ 
    //do something 
} 

你的第一個代碼是絕對沒問題,沒有錯誤應該工作

+0

謝謝,是的,第一個代碼工作很好,很抱歉。 –