2013-03-25 3 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; 
} 

При обращении к переменным, я получаю сообщение об ошибке говорящее invalid expression term string от getdbpass() и expected } от getdbname.

/** 
* 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' в скобках или это только ошибка копирования/вставки? Если нет, то в этом проблема - она ​​должна быть «вне». –

+0

Какая скобка? Я пытаюсь передать переменную dbname, чтобы указать, какое имя должно быть объявлено первым. @ 500-InternalServerError –

+1

См. Ответ Митча. –

ответ

4
string dbname; 
string dbpass; 

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

Ваши методы возвращают и пас назад, используя out то же значение. Возможно, вы захотите пересмотреть это.

я предпочел бы просто объявить как возвращающая значение:

public static string getdbname() { ... } 

и призвание:

string dbname = getdbname(); 

Старайтесь избегать использования out для возврата значений из методов.

+0

Я пробовал этот путь, и он сначала ввел метод, а затем пошел к вызову, чтобы повторить шаблон. –

+0

Желаю, чтобы я мог распечатать экран, и он здесь, но getbdname (out dbname) и getdbpass (out dbpass) являются ошибками. Большая красная линия внизу. Позвольте мне обновить код. –

+1

@MitchWheat: Это не * есть * для работы. Оригинальный плакат, вероятно, забывает о том, чтобы метод вызывал * внутри тела метода *. –