반응형


변환 할경우 변수를 toNum 처럼 만들어야 하는데 이를 좀 더 간결하게

out var 로 대체가 가능하다 C# 7.0 부터..


1
2
3
4
5
6
7
8
9
10
            int toNum;
            if(int.TryParse("1234"out toNum))
            {
                Console.WriteLine(toNum);
            }
 
            if(int.TryParse("1234"out var num))
            {
                Console.WriteLine(num);
            }

cs






out 인수를 사용하여 메서드 호출

C# 6 및 이전 버전에서는 out 인수로 전달하기 전에 별도 문에서 변수를 선언해야 합니다. 

다음 예제에서는 Int32.TryParse 메서드에 전달되기 전에 number라는 변수를 선언합니다. 

이 메서드는 문자열을 숫자로 변환하려고 합니다.

string numberAsString = "1640"; int number; if (Int32.TryParse(numberAsString, out number)) Console.WriteLine($"Converted '{numberAsString}' to {number}"); else Console.WriteLine($"Unable to convert '{numberAsString}'"); // The example displays the following output: // 결과 : Converted '1640' to 1640


C# 7.0부터 별도 변수 선언이 아니라 메서드 호출의 인수 목록에서 out 변수를 선언할 수 있습니다. 

이렇게 하면 보다 간결하고 읽기 쉬운 코드가 생성되며 메서드 호출 전에 실수로 
변수에 값이 할당되는 경우를 방지할 수 있습니다. 

다음 예제는 Int32.TryParse 메서드 호출에서 number 변수를 정의한다는 점을 제외하고 이전 예제와 비슷합니다.

string numberAsString = "1640"; if (Int32.TryParse(numberAsString, out int number)) Console.WriteLine($"Converted '{numberAsString}' to {number}"); else Console.WriteLine($"Unable to convert '{numberAsString}'"); // The example displays the following output: // 결과 : Converted '1640' to 1640




앞의 예제에서 number 변수는 int로 강력하게 형식화됩니다. 

다음 예제와 같이 암시적 형식 지역 변수를 선언할 수도 있습니다.


string numberAsString = "1640"; if (Int32.TryParse(numberAsString, out var number)) Console.WriteLine($"Converted '{numberAsString}' to {number}"); else Console.WriteLine($"Unable to convert '{numberAsString}'"); // The example displays the following output: // 결과 Converted '1640' to 1640




ref : https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/out-parameter-modifier

반응형

+ Recent posts