Написание исполняемой функции на C # - PullRequest
0 голосов
/ 03 апреля 2009

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

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

Ответы [ 6 ]

5 голосов
/ 03 апреля 2009

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

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

string line = Console.ReadLine();

Это, вероятно, переносит ваш вопрос на: Как мне получить значения из строки?

Если у вас есть один int за раз, это

int x = int.Parse(line);
2 голосов
/ 03 апреля 2009

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

static void Main(string[] args)
{
}

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

1 голос
/ 03 апреля 2009

Хм. Думаю, ему интересно, как можно прочитать какое-то значение и передать его функции.

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

string data = Console.ReadLine();
do {
  dummyFunction(data);
  data = Console.ReadLine();
} while (data != "");
0 голосов
/ 03 апреля 2009
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- выполнить некоторую проверку ввода.

0 голосов
/ 03 апреля 2009

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

Natthawut 22

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

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

0 голосов
/ 03 апреля 2009

Вы хотите программно скомпилировать текст в код? Если это так, вы должны прочитать эту запись в КБ от Microsoft. Как программно скомпилировать код с использованием компилятора C #

Или, если вы хотите получить ввод от пользователя в консоли, вы должны использовать 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);
...