퇴근5분전

  예전에 본것같은데 기억이 안나서 

직접 해놓고 해당 값이 어떻게 출력되는지 뽑아 보았다. 

왜썼는지는 일끝나고... 추가.. 


  public Form1()
        {
            InitializeComponent();


            //null;
            string Target = "ㅁㅁㅁ";
            this.Text = Target == null ? 1 > 0 ? "_1" : "_2" : "_3" ;
            /*
             *     조건 1    조건 2      결과
             *       참       참          _1      
             *       참       거짓       _2
             *      거짓      거짓      _3
             *      거짓      참         _3
             */


            //   this.Text = Target ?? (Target != null ? "!" : "_"); // 결과는 _  null이니까.

        }


추가 내용 : 
소스 상에서 특정 변수값이 null인지를 따져야 하고  다음으로 이값이 어떤 특정값인지체크 하기 위해 작성을 하다보면

간혹 이런 코드라인이 한두줄 걸쳐서 나올때 if문 갯수가 눈을 어지럽히게 된다.

if( 객체 != null && 객체 == 특정값)
{
         처리1;
}     
else
{
         처리 2;
}
.. 한두줄 다른거 체크

if( ... 위에 로직 반복... )

.. 한두줄 다른거 체크..

이러다보면 몇라인 보지도 못하고 화면을 계속 스크롤 해야 하는 경우가 생기는데..

삼항 연산자를 중복으로 사용하여 같은 처리 로직을 만든다 .


물론  조건1?  조건2 ? 조건1 && 조건2 가 참  :   조건1 참 , 조건2 거짓  : 조건1이 거짓 ;

로직을 모를경우 문제가 되겠지만... 이런건 간단한 주석으로 알려줄수 있는 문제이다.


위를 간단히 해석하고 싶으면 () 를 이용하면 된다 .


조건1? ( 조건2 ? 조건1 && 조건2 가 참  :   조건1 참 , 조건2 거짓  ) : 조건1이 거짓 ;

조건 1 에 걸렸을때  
참    ->(      다음 조건식  => 참   -> 첫번째 반환값이 ,  
                                        거짓 -> 다음식에 거짓값인 가운데 값이 반환 )
거짓 -> 끝에 거짓 값이 반환

















null ? 1 > 0 ? "_1" : "_2" : "_3" ;