세미나하면서 알게된 기능 두개.
쓸만해보여서 기록함.
1. 함수 파라미터에 콜론 (선택적 인수)
선택적 인수는 항상 끝에 나열되기 때문에, 새로운 인수를 추가하는 과정이 매우 번거롭다.
그리고 선택적 인수가 여러개 있을 때, 한개의 값만 넣으려고 하면 C++은 매우 불편했다..
static void Main( string[] args )
{
List<int> lstInteger = new List<int>();
PrintTypeOfC( 1, null, lstInteger ); // 이렇게 중간에 선택적 인자에 값을 넣어줘야한다..
}
static public void PrintTypeOfC( int a, object b = null, object c = null)
{
Console.WriteLine( c.GetType() );
}
// "System.Collections.Generic.List`1[System.Int32]" 출력
중간 선택적 인자의 값이 object가 아니고 정수 같은 경우 기본값을 바꾸려면, 호출 시점을 일일히 찾아서 바꾸는 불편함이 있었다.
하지만 C#에서는 선택적 인자중에 원하는 것을 골라서 집어 넣을수가 있다!
static void Main( string[] args )
{
List<int> lstInteger = new List<int>();
PrintTypeOfC( 1, c: lstInteger ); // b는 무시하고 c에 값을 바로 집어넣음!
}
static public void PrintTypeOfC( int a, object b = null, object c = null)
{
Console.WriteLine( c.GetType() );
}
// "System.Collections.Generic.List`1[System.Int32]" 출력
괜히 기본값을 일일히 넣지 말고, 미래를 위해서 이 방법을 쓰는게 좋을 듯 하다.
2. Out var
static void Main( string[] args )
{
List<int> lstInteger = null; // out으로 뽑기위해서 변수를 선언해야한다.
GetIntList( 1, 10, out lstInteger );
Console.WriteLine( lstInteger.Count );
}
static public void GetIntList( int from_, int to_, out List<int> lstInteger_ )
{
lstInteger_ = new List<int>();
for ( int i = from_; i <= to_; ++i )
{
lstInteger_.Add( i );
}
}
// 10 출력됨.
위와 같이 함수에 out 파라미터를 사용하기 위해서는 변수를 따로 선언했어야 했다.
하지만 out var을 사용하면 무려 한 줄을!! 줄일 수 있다.
static void Main( string[] args )
{
GetIntList( 1, 10, out var lstInteger );
Console.WriteLine( lstInteger.Count );
}
static public void GetIntList( int from_, int to_, out List<int> lstInteger_ )
{
lstInteger_ = new List<int>();
for ( int i = from_; i <= to_; ++i )
{
lstInteger_.Add( i );
}
}
// 10 출력됨.
아래 처럼 var가 아닌 명시적으로 type을 지정 할 수도 있다.
static void Main( string[] args )
{
GetIntList( 1, 10, out List<int> lstInteger );
Console.WriteLine( lstInteger.Count );
}
static public void GetIntList( int from_, int to_, out List<int> lstInteger_ )
{
lstInteger_ = new List<int>();
for ( int i = from_; i <= to_; ++i )
{
lstInteger_.Add( i );
}
}
// 10 출력됨.
서버 소스코드에서 Out을 되게 자주 사용 하는데 많이 편해 질 것 같다~~ >w<
'Programming > C# & Unity' 카테고리의 다른 글
C# try catch finally (0) | 2020.10.06 |
---|---|
C# 자주 쓰는 Collection 집계 함수 (0) | 2020.01.29 |
C# 비동기 루프 및 실행 (2) | 2019.12.12 |
C# ThreadLocal (0) | 2019.12.10 |
C# ?. ?? 연산자 (0) | 2019.10.31 |