2013-03-25 149 views
-2

下面的獲取數據庫名稱和密碼的方法很好。方法變量錯誤。未知原因

public static string getdbname(out string dbname) 
{ 
    Console.WriteLine("Enter the database name.\n"); 
    string dbasename = Console.ReadLine(); 
    Console.WriteLine(); 
    dbname = dbasename; 
    return dbname; 
} 

public static string getdbpass(out string dbpass) 
{ 
    Console.WriteLine("Enter the database password.\n"); 
    string dbasepass = Console.ReadLine(); 
    Console.WriteLine(); 
    dbpass = dbasepass; 
    return dbpass; 
} 

當訪問變量,我得到()一個錯誤說從getdbpass invalid expression term string和getdbname expected }

/** 
* Create string for an SQL Connection 
**/ 
public static string connTest() 
{ 
    // Call in the out variables 
    string name, pass; 
    getdbname(out dbname); 
    getdbpass(out dbpass); 
    ... 
    ... 

我希望這可以幫助你在搞清楚什麼是錯的,因爲我已經試過幾件事情,從重新命名變量搬遷變量的所有道路。還沒有工作。

+0

在括號中是否有'string'類型的名稱,或者只是複製/粘貼錯誤?如果不是,那麼這就是問題 - 它應該是'out'。 – 2013-03-25 23:48:30

+0

哪個括號?我試圖通過變量dbname來命名哪個名稱必須首先聲明。 @ 500-InternalServerError – 2013-03-25 23:49:41

+1

見米奇的答案。 – 2013-03-25 23:51:40

回答

4
string dbname; 
string dbpass; 

getdbname(out dbname); 
getdbpass(out dbpass); 

你的方法均返回回傳球使用out相同的值。你可能想重新考慮這一點。

我寧願只是聲明爲返回值:

public static string getdbname() { ... } 

,並呼籲爲:

string dbname = getdbname(); 

儘量避免使用out從方法的返回值。

+0

我嘗試了這種方式,首先進入方法,然後去調用重複模式。 – 2013-03-25 23:54:04

+0

希望我可以打印屏幕,它在這裏,但getbdname(出dbname)和getdbpass(出dbpass)是錯誤的。底下有一條大紅線。讓我更新代碼。 – 2013-03-25 23:56:41

+1

@MitchWheat:它不*有*工作。原始海報很可能忘記將方法調用*放在方法體內*。 – 2013-03-25 23:59:11