2009-04-02 3 views
0

Я действительно новичок в этом. Мне нужно написать приложение exe в C#. Мне нужно сделать, чтобы передать значения через консоль в функцию. Но я не уверен, как я могу хранить значения, вводимые через консоль ...Запись исполняемой функции в C#

Я знаю, что мы можем использовать Read(), чтобы читать введенное, но когда я имею дело с несколькими значениями Как мне это сделать? Любая помощь будет принята с благодарностью! Заранее спасибо

+0

Будет ли эта функция основной? – Geo

+0

Можете ли вы точно уточнить, что вам нужно? –

ответ

0

Вы хотите программно скомпилировать текст в код? Если это так, вы должны прочитать эту запись в Microsoft от Microsoft. How to programmatically compile code using C# compiler

Или, если вы хотите получить информацию от пользователя в консоли, вы должны использовать Console.ReadLine().

Console.Write("Enter your name: "); 
string name = Console.ReadLine(); 

Console.Write("Enter your age: "); 
int age = int.Parse(Console.ReadLine()); 

Console.Write("Hello {0}, you are {1} years old.", name, age); 
+0

Я думаю, что вы набросились на них с этим ответом. Они хотят знать, как читать ввод в консольной программе, а не использовать CodeDOM. –

+0

Да, я понял, что я добавил простой сбор данных. – Samuel

+0

И да, вы должны использовать int.TryParse, но я оставил его для простоты. – Samuel

2

Вы ссылаетесь на передачу параметров командной строки в консольное приложение? Если это так, существует строковый массив (например, args), который их содержит. См. this code.

static void Main(string[] args) 
{ 
} 

Вы также можете использовать Environment.GetCommandLineArgs.

5

Вы можете начать с выбора шаблона консольного приложения (в New Project)

И затем, в основной функции, вы можете прочитать построчно с

string line = Console.ReadLine(); 

Это, вероятно, сдвигает свой вопрос to: Как получить значения из строки?

Если у вас есть один Int, в то время, это

int x = int.Parse(line); 
0

Вы можете в основном сделать синтаксический анализ работы вручную. Например, если вход является именем по возрасту.

Natthawut 22 

Вы можете использовать Console.ReadLine(), чтобы получить строку "Nattawut 22". И затем используйте String.Split(' '); для получения массива {"Natthawut","22"}. Затем преобразуйте второй элемент в целое число с помощью Convert.ToInt32(val);

Я считаю, что должен быть лучший способ сделать это, но это, как я обычно делаю это :)

1

Хмм Я думаю, он задавался вопросом, как repeatitly прочитать какое-то значение и передать его в функцию.

Для этого вы можете использовать простой цикл while.

string data = Console.ReadLine(); 
do { 
    dummyFunction(data); 
    data = Console.ReadLine(); 
} while (data != ""); 
0
int year, month, day; 
Console.WriteLine("Please enter your birth year : "); 
year = int.Parse(Console.ReadLine()); 
Console.WriteLine("Please enter your birth month : "); 
month = int.Parse(Console.ReadLine()); 
Console.WriteLine("Please enter your birth day : "); 
day = int.Parse(Console.ReadLine()); 
Console.Write("You are "); 
Console.Write(CalculateAge(year, month, day)); 
Console.Write(" years old."); 

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

Console.WriteLine("Please enter your birthday in the format YY-MM-DD : "); 
string line = Console.ReadLine(); 
string[] parts = line.Split(new char[] { '-' }); 
int age = CalculateAge(parts[0],parts[1],parts[2]); 
Console.WriteLine("You are {0} years old.", age); 

И -PLEASE- сделать проверку некоторых входных сигналов.

Смежные вопросы