c# out 예제

  • 0

c# out 예제

in, ref 및 out 키워드는 오버로드 확인을 위해 메서드 서명의 일부로 간주되지 않습니다. 따라서 한 메서드가 ref 또는 인수를 취하고 다른 메서드가 인수를 사용하는 경우 메서드를 오버로드할 수 없습니다. 예를 들어, 다음 코드는 컴파일되지 않습니다: Mads Torgersen에 따르면 Microsoft는 메서드의 out 매개 변수를 무시하려는 경우 와일드카드 `*` 기호를 매개 변수 이름으로 포함시킬 계획입니다. 그러나 이 기능이 C# 7.0의 일부가 될지는 확실하지 않습니다. 예를 들어 위의 코드 조각에서 게시된Year 매개 변수에 대해 신경 쓰지 않는다면 `*`로 바꿀 수 있습니다. 이전 C# 버전에서는 Out 변수의 선언 및 초기화를 두 개의 서로 다른 문으로 구분해야 합니다. C# 7.0은 Out 매개 변수가 선언 및 초기화 없이 전달할 수 있는 이 기능을 제공합니다. 예제를 살펴보겠습니다. 이전 예제에서 숫자 변수는 int로 강력하게 입력됩니다. 다음 예제와 마찬가지로 암시적으로 형식이 입력된 지역 변수를 선언할 수도 있습니다.

C# 6 이상에서는 변수를 out 인수로 전달하기 전에 별도의 문에서 변수를 선언해야 합니다. 다음 예제에서는 문자열을 숫자로 변환하려고 시도하는 Int32.TryParse 메서드에 전달되기 전에 명명된 변수를 선언합니다. 참고: 이 예제를 실행하려면 C# 7.0 버전이 필요합니다. 아웃 인수를 사용하여 메서드를 선언하는 것은 여러 값을 반환하는 고전적인 해결 방법입니다. C # 7.0부터 시작하여 유사한 시나리오에 대한 투플을 고려하십시오. 다음 예제에서는 단일 메서드 호출을 사용 하 여 세 개의 변수를 반환 하는 데 사용 합니다. 세 번째 인수는 null에 할당됩니다. 이렇게 하면 메서드가 값을 선택적으로 반환할 수 있습니다.

C#은 이 상황에 대한 out 매개 변수 수정자를 제공합니다. out 한정자는 참조 매개 변수가 발생해야 하는 요구 사항을 제거합니다. GetTime()에 대한 매개 변수는 메서드에 정보를 제공하지 않습니다. 그들은 단순히 그것의 정보를 얻기위한 메커니즘입니다. 따라서 세 가지 를 모두 out 매개 변수로 표시하면 메서드 외부에서 초기화할 필요가 없습니다. 호출된 메서드 내에서 out 매개 변수는 메서드가 반환하기 전에 값을 할당해야 합니다. 다음은 GetTime()에 대한 변경된 매개 변수 선언입니다: out 키워드로 인해 인수가 참조로 전달됩니다. 형식 매개 변수를 변수여야 하는 인수의 별칭으로 만듭니다. 즉, 매개 변수에 대한 모든 작업은 인수에서 수행됩니다. 참조가 전달되기 전에 변수를 초기화해야 한다는 점을 제외하면 ref 키워드와 같습니다. 또한 in에서 호출된 메서드가 인수 값을 수정할 수 없다는 점을 제외하고는 in 키워드와 비슷합니다. out 매개 변수를 사용하려면 메서드 정의와 호출 메서드 모두 out 키워드를 명시적으로 사용해야 합니다.

예: 예제를 만들어 보겠습니다. 정수 배열에서 연속 시퀀스로 정렬할 수 있는 숫자를 포함하는 가장 긴 하위 배열의 길이를 찾습니다. 출력 매개 변수에 대해 제공된 변수에 값을 할당할 필요가 없습니다.


Recent Post

큐 스택 예제

마크업 예제

리눅스 qt 예제

Categories

  • No categories
Leave us a message if you have any question...
Powered by
Website is Protected by WordPress Protection from eDarpan.com.