2013-05-09 65 views
0

我有這樣的:進入拋出錯誤

static void Main(string[] arg) 

和:

Main("month"); 

但由於某些原因,這給出了錯誤:

The best overloaded method match for 'Numbers.Program.Main(string[])' has some invalid arguments

而且

Argument 1: cannot convert from 'string' to 'string[]'

我該如何解決這些問題?

+1

'字符串[] args'預計數組不是一個字符串錯誤信息本身就已說明 – MethodMan 2013-05-09 00:16:35

+0

@EvanTrimboli他的問題是關於一些有點不同,但有同樣的錯誤。 – Frank 2013-05-09 00:17:34

+0

HA ..我不這麼認爲 – MethodMan 2013-05-09 00:18:13

回答

0

字符串是一個字符串。 String[]是一個字符串數組。

試試這個:

String[] parameters = new String[] {"month"}; 
Main(parameters); 

有關數組和聲明/實例他們更多的信息,請參閱http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx

+0

也許是因爲OP是初學者,您可能想要使用更有意義的變量名稱來顯示或建議 – MethodMan 2013-05-09 00:17:36

+0

@DJ KRAZE我沒有足夠的上下文來給出有意義的變量名稱,但我會嘗試。 – Patashu 2013-05-09 00:18:28

+0

我想說的是建議不要使用變量名稱,可能會得到或與保留字混淆.. perhapss arrParams或arrString你知道一個更好的命名約定 – MethodMan 2013-05-09 00:19:46

3

其他答案是正確的(編譯器不會讓您將字符串作爲參數傳遞給期望字符串數組的方法),但另一種方法是更改​​方法的方法簽名,如下所示:

static void Main(params string[] arg) 

params keyword允許參數分別傳遞而不是數組。因此,下面的調用是等價的:

Main("month"); 
Main(new string[] {"month"}); 

順便說一句 - 雖然它是合法的,它不是來自你自己的程序共同調用Main方法(你的程序的入口點)。根據您的要求,您可能要考慮的是隻有一個字符串作爲參數的新方法,如:

public static void MyMethod(string s) 
{ 
     // your code 
} 

// in your Main method 
MyMethod("month");