본문 바로가기

Programming/C#

C# 6.0 널 조건 연산자

반응형


/*

// case1

// rows가 NULL이면 cnt 도 NULL

// rows가 NULL이 아니면 cnt는 실제 rows 갯수

int? cnt = rows?.Count;


// case2

// customers 컬렉션이 NULL이면 c는 NULL

// 아니면, c는 첫번째 배열요소

Customer c = customers?[0];


// case3

// customers가 널인지 체크하고

// 다시 customers[0]가 널인지 체크

int? age = customers?[0]?.Age;


// case4

// rows가 NULL이면 cnt = 0

// 아니면 cnt는 실제 rows 갯수

int cnt = rows?.Count ?? 0;

*/


using System;

public class MyButton

{

    public event EventHandler Clicked;


    // 이전 방식

    public void Click1()

    {

        //...


        // 스텝1. 임시변수에 이벤트 복사 (Thread safety 때문)

        var tempClicked = Clicked;

        // 스텝2. 널 체크

        if (tempClicked != null)

        {

            // 스텝3. 이벤트 Invoke

            tempClicked(this, null);

        }

    }


    // C# 6.0 방식

    public void Click2()

    {

        // ...


        // 위의 3 스텝을 널 조건 연산자을 사용하여

        // 한 문장으로 표현

        Clicked?.Invoke(this, null);

    }

}



class Program

{

    static void Main(string[] args)

    {

        MyButton button = new MyButton();

        button.Click1();

        button.Click2();

    }

}

  




.NET 4 이상에서 동작하기 때문에 유니티에서 사용하려면 설정이 필요합니다.


File -> Build Settings -> Player Settings클릭 후 아래 이미지와 같이 설정하면 됩니다.





반응형