'out' 매개변수를 사용하여 클래스 필드 설정하기

알고 계셨나요?



'out' 메소드 매개변수를 사용하여 클래스 필드를 설정할 수 있습니다.



C#에서 out 매개변수를 좋아하든 좋아하지 않든 상관없이 여기에 있습니다. .NET 생태계에서 여러 공통 패턴을 장식합니다.
  • 반환이 성공을 나타내는 TryParse이고 구문 분석 결과가 bool 매개변수에서 오는 out 패턴입니다.

  • 그러나 매우 자주 구문 분석 결과로 클래스 필드를 설정하려고 합니다. 처음에는 값을 보유할 임시 변수를 선언한 다음 필드를 할당해야 한다고 가정합니다.

    public class MyClass
    {
      private int _parsedIntField;
    
      public MyClass(string strToParse)
      {
        if (!Int32.TryParse(strToParse, out int result))
        {
          throw new ArgumentException("Please provide a valid numerical string.", nameof(strToParse));
        }
    
        _parsedIntField = result;
      }
    }
    

    그러나 이것은 필요하지 않습니다. 필드를 직접 설정할 수 있습니다.

    public class MyClass
    {
      private int _parsedIntField;
    
      public MyClass(string strToParse)
      {
        if (!Int32.TryParse(strToParse, out _parsedIntField))
        {
          throw new ArgumentException("Please provide a valid numerical string.", nameof(strToParse));
        }
      }
    }
    

    좋은 웹페이지 즐겨찾기