C#에서는 프로그램 실행이 main() 메서드에서 시작됩니다. main() 메서드는 다른 메서드의 인수를 허용하지 않지만 명령줄을 통해 사용자로부터 전달된 인수를 허용하며 이러한 인수를 명령줄 인수라고 합니다. 다음은 C#의 명령줄 인수와 관련된 몇 가지 중요한 사항입니다.
설명이 포함된 구문
명령줄 인수를 사용하는 Main() 메서드의 구문은 다음과 같습니다.
static void Main(string[] args) { //user code }
위 구문에서 '정적'은 Main() 메서드가 인스턴스 없이 실행될 수 있음을 나타내는 키워드입니다. 'void'는 반환 유형입니다. 'Main'은 이것이 프로그램의 Main() 메소드임을 나타내고 'string[]'은 메소드에 전달되는 인수 유형을 나타냅니다. 'args'는 인수에 부여된 사용자 정의 이름입니다.
명령줄 인수는 문자열 유형의 배열로 Main() 메서드에 전달되므로 프로그램을 실행하는 동안 n개의 매개 변수를 전달할 수 있습니다.
예:
public static void Main(string[] args) { //user code }
위 Main() 메서드에 매개변수를 전달하면 문자열 유형의 배열인 'args' 변수에 의해 보호됩니다. 그런 다음 인덱스 위치를 사용하여 이 배열의 개별 인수에 액세스할 수 있습니다.
이전에 전달된 각 요소는 아래 예와 같이 C#에서 제공하는 Convert 클래스 또는 Parse() 메서드를 사용하여 나중에 필요한 데이터 유형으로 변경할 수 있는 문자열 유형입니다.
long num = long.Parse(args[0]);
위 명령문은 Parse() 메서드를 사용하여 인덱스 번호 0에 있는 인수를 동등한 'long' 값으로 변환한 다음 'long' 유형의 변수 'num'에 저장합니다.
int num = Convert.ToInt32(args[1]);
이 명령문은 인덱스 번호 1에 있는 인수를 해당하는 32비트 부호 있는 정수로 변환한 다음 'int' 유형인 'num' 변수에 저장합니다.
명령줄 인수가 있는지 확인할 수도 있습니다. 예를 들어 아래와 같이 'Length' 속성을 사용하여 인수가 Main() 메서드에 전달되었는지 여부를 확인할 수 있습니다.
if (args.Length > 0) { System.Console.WriteLine("Arguments passed"); } else { System.Console.WriteLine("Arguments are not passed"); }
Windows Forms 애플리케이션의 경우 Main() 메서드에서 명령줄 인수를 활성화하려면 'program.cs' 파일에서 Main() 메서드의 서명을 수정해야 합니다. 이는 Windows 양식 디자이너가 입력 매개변수 없이 Main() 메소드를 포함하는 코드를 생성하기 때문입니다.
Visual Studio에서 C#으로 작업하는 경우 Visual Studio에서 Main() 메서드에 대한 명령줄 인수를 입력하는 좋은 방법이 있습니다. 이를 위한 몇 가지 단계는 다음과 같습니다.
이 텍스트 상자에 각각 공백으로 구분된 명령줄 인수를 입력할 수 있습니다. 아래에서 동일한 스크린샷을 찾아보세요.
아래에는 다양한 예가 나와 있습니다.
예를 들어, 명령줄 인수를 통해 사용자로부터 10개의 정수를 입력받고 이러한 숫자 중에서 홀수와 짝수를 확인합니다.
코드:
using System; using System.IO; using System.Collections.Generic; namespace ConsoleApp4 { class Program { public static void Main(string[] args) { List<int> evenArray = new List<int>(); List<int> oddArray = new List<int>(); try { //checking if any argument exists if (args.Length == 0) { Console.WriteLine("Please enter numbers to check for odd even!"); return; } //accessing arguments using for loop for (int i = 0; i < args.Length; i++) { //checking for odd and even if ((Convert.ToInt32(args[i]) % 2) == 0) { evenArray.Add(Convert.ToInt32(args[i])); } else { oddArray.Add(Convert.ToInt32(args[i])); } } //displaying all the numbers entered Console.WriteLine("Numbers entered:"); for (int i = 0; i < args.Length; i++) { Console.WriteLine(args[i]); } //displaying even numbers entered Console.WriteLine("\nEven numbers: "); for (int i = 0; i < evenArray.Count; i++) { Console.WriteLine(evenArray[i]); } //displaying odd numbers entered Console.WriteLine("\nOdd numbers: "); for (int i = 0; i < oddArray.Count; i++) { Console.WriteLine(oddArray[i]); } Console.ReadLine(); } catch(Exception ex) { Console.WriteLine(ex.Message); } } } }
출력:
입력을 입력하고 출력을 받은 상태에서 위 프로그램을 실행하는 명령이 포함된 스크린샷은 다음과 같습니다.
예를 들어 명령줄을 통해 사용자로부터 숫자를 가져와 계승을 계산합니다.
코드:
using System; using System.IO; using System.Collections.Generic; namespace ConsoleApp4 { class Program { public static void Main(string[] args) { int number; int factorial; try { //checking if any argument exists if (args.Length == 0) { Console.WriteLine("Please enter a number to calculate " + "its factorial!"); return; } if(args.Length > 1) { Console.WriteLine("Please enter only one number."); return; } Console.WriteLine("The number entered is: " + args[0]); number = Convert.ToInt32(args[0]); factorial = number; //calculating factorial of number using 'for' loop for(int i = number - 1; i >= 1; i--) { factorial = factorial * i; } Console.WriteLine("Factorial of {0} is {1}: ", args[0], factorial); Console.ReadLine(); } catch(Exception ex) { Console.WriteLine(ex.Message); } } } }
출력:
입력된 숫자와 수신된 출력으로 위 프로그램을 실행하는 명령이 포함된 스크린샷은 다음과 같습니다.
참고: “VS 2019용 개발자 명령 프롬프트”를 사용하여 위 두 프로그램을 실행했습니다. Visual Studio의 '디버그' 옵션에 있는 '명령줄 인수' 텍스트 상자를 통해 명령줄 인수를 제공하여 Visual Studio에서 이러한 프로그램을 실행할 수도 있습니다.명령줄 인수는 명령줄을 사용하여 사용자로부터 프로그램의 Main() 메서드로 전달되는 매개변수입니다. 사용자는 프로그램 실행 중에 이러한 인수를 입력합니다. 이러한 인수는 문자열 유형 배열의 Main() 메서드에 의해 수신됩니다.
위 내용은 C# 명령줄 인수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!