C#교과서 마스터하기 19. Null
https://www.youtube.com/watch?v=yj-mCQv8C94&list=PLO56HZSjrPTB4NxAsEP8HRk6YKBDLbp7m&index=49
1. Null
- 아무것도 없음을 의미하는 리터럴, 개체가 아무것도 참조하지 않음을 null 참조라 함
- 아무것도 가리키지 않는다
2. Null과 Null 참조
3. null 참조
> int i = 0; // 값형(Value Type)
> string s = null; // 참조형(Reference Type)
> s = "안녕하세요.";
> string empty = ""; // 빈값(Empty)은 null과는 다름
4. Nullable<T> 구조체를 사용하여 널 가능 형식 변수 만들기
- Nullable 형식 : null(값이 없음을 의미)이 할당될 수 있는 형식
- 참조 형식 : null 할당 가능
- 값 형식 : null 할당 불가
- 하지만 type? 이렇게 선언하면 null 대입 가능
- int? num = null;
> Nummable<bool> bln = null;
> bln.HasValue
false
> bln = true;
> bln.HasValue
true
5. ?? 연산자(null 병합 연산자(Null Coalescing Operator))
> string nullValue = null;
> string message = "";
>
> //[1] if 구문으로 null 값 비교
> if(nullValue == null)
. {
. message = "[1] null이면 새로운 값으로 초기화 합니다.";
. }
> message;
"[1] null이면 새로운 값으로 초기화 합니다."
>
> //[2] ?? 연산자로 null 값 비교
> message = nullValue ?? "[2] null이면 새로운 값으로 초기화합니다.";
> message
"[2] null이면 새로운 값으로 초기화합니다."
> nullValue = "hello";
> message = nullValue ?? "[2] null이면 새로운 값으로 초기화합니다.";
> message
"hello"
> int? x = null;
> int y = x ?? 100;
> int z = x ?? default(int);
> int z = x ?? default;
6. ?.(엘비스) null 조건 연산자(Null Conditional)
> double? d = null;
> d
null
> d?.ToString(); // 만약에 d가 null 값이 아니면 문자열 변환해서 출력하라
null
> d = 1.0
> d?.ToString();
"1"
> d?.ToString("#.00");
"1.00"
7. ??(널 병합 연산자) & ?.(널 조건 연산자) 함께 사용해보기
- ??, 컬렉션이 null이 아니면 해당 값 반환, null이면 뒤에 지정한 값 반환
- ?., 컬렉션이 null이면 null, 그렇지 않으면 뒤에 오는 속성 값 반환
> int num;
> List<string> list;
> // [1] 컬렉션 리스트가 null이면 Count를 읽을 수 없기에 0으로 초기화
> list = null;
> num = list?.Count ?? 0; // null이면 0반환, 오른쪽 값 사용
> num
0
> // [2] 컬렉션 리스트가 null이 아니면 Count 속성의 값 사용
> list = new List<string>();
> list.Add("see you again)
> num = list?.Count ?? 0; // null이 아니기 때문에 왼쪽 값 사용
> num
13
Author And Source
이 문제에 관하여(C#교과서 마스터하기 19. Null), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@ansalstmd/C교과서-마스터하기-19.-Null
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
> int i = 0; // 값형(Value Type)
> string s = null; // 참조형(Reference Type)
> s = "안녕하세요.";
> string empty = ""; // 빈값(Empty)은 null과는 다름
- Nullable 형식 : null(값이 없음을 의미)이 할당될 수 있는 형식
- 참조 형식 : null 할당 가능
- 값 형식 : null 할당 불가
- 하지만 type? 이렇게 선언하면 null 대입 가능
- int? num = null;
- 하지만 type? 이렇게 선언하면 null 대입 가능
> Nummable<bool> bln = null;
> bln.HasValue
false
> bln = true;
> bln.HasValue
true
5. ?? 연산자(null 병합 연산자(Null Coalescing Operator))
> string nullValue = null;
> string message = "";
>
> //[1] if 구문으로 null 값 비교
> if(nullValue == null)
. {
. message = "[1] null이면 새로운 값으로 초기화 합니다.";
. }
> message;
"[1] null이면 새로운 값으로 초기화 합니다."
>
> //[2] ?? 연산자로 null 값 비교
> message = nullValue ?? "[2] null이면 새로운 값으로 초기화합니다.";
> message
"[2] null이면 새로운 값으로 초기화합니다."
> nullValue = "hello";
> message = nullValue ?? "[2] null이면 새로운 값으로 초기화합니다.";
> message
"hello"
> int? x = null;
> int y = x ?? 100;
> int z = x ?? default(int);
> int z = x ?? default;
6. ?.(엘비스) null 조건 연산자(Null Conditional)
> double? d = null;
> d
null
> d?.ToString(); // 만약에 d가 null 값이 아니면 문자열 변환해서 출력하라
null
> d = 1.0
> d?.ToString();
"1"
> d?.ToString("#.00");
"1.00"
7. ??(널 병합 연산자) & ?.(널 조건 연산자) 함께 사용해보기
- ??, 컬렉션이 null이 아니면 해당 값 반환, null이면 뒤에 지정한 값 반환
- ?., 컬렉션이 null이면 null, 그렇지 않으면 뒤에 오는 속성 값 반환
> int num;
> List<string> list;
> // [1] 컬렉션 리스트가 null이면 Count를 읽을 수 없기에 0으로 초기화
> list = null;
> num = list?.Count ?? 0; // null이면 0반환, 오른쪽 값 사용
> num
0
> // [2] 컬렉션 리스트가 null이 아니면 Count 속성의 값 사용
> list = new List<string>();
> list.Add("see you again)
> num = list?.Count ?? 0; // null이 아니기 때문에 왼쪽 값 사용
> num
13
Author And Source
이 문제에 관하여(C#교과서 마스터하기 19. Null), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@ansalstmd/C교과서-마스터하기-19.-Null
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
> string nullValue = null;
> string message = "";
>
> //[1] if 구문으로 null 값 비교
> if(nullValue == null)
. {
. message = "[1] null이면 새로운 값으로 초기화 합니다.";
. }
> message;
"[1] null이면 새로운 값으로 초기화 합니다."
>
> //[2] ?? 연산자로 null 값 비교
> message = nullValue ?? "[2] null이면 새로운 값으로 초기화합니다.";
> message
"[2] null이면 새로운 값으로 초기화합니다."
> nullValue = "hello";
> message = nullValue ?? "[2] null이면 새로운 값으로 초기화합니다.";
> message
"hello"
> int? x = null;
> int y = x ?? 100;
> int z = x ?? default(int);
> int z = x ?? default;
> double? d = null;
> d
null
> d?.ToString(); // 만약에 d가 null 값이 아니면 문자열 변환해서 출력하라
null
> d = 1.0
> d?.ToString();
"1"
> d?.ToString("#.00");
"1.00"
7. ??(널 병합 연산자) & ?.(널 조건 연산자) 함께 사용해보기
- ??, 컬렉션이 null이 아니면 해당 값 반환, null이면 뒤에 지정한 값 반환
- ?., 컬렉션이 null이면 null, 그렇지 않으면 뒤에 오는 속성 값 반환
> int num;
> List<string> list;
> // [1] 컬렉션 리스트가 null이면 Count를 읽을 수 없기에 0으로 초기화
> list = null;
> num = list?.Count ?? 0; // null이면 0반환, 오른쪽 값 사용
> num
0
> // [2] 컬렉션 리스트가 null이 아니면 Count 속성의 값 사용
> list = new List<string>();
> list.Add("see you again)
> num = list?.Count ?? 0; // null이 아니기 때문에 왼쪽 값 사용
> num
13
Author And Source
이 문제에 관하여(C#교과서 마스터하기 19. Null), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@ansalstmd/C교과서-마스터하기-19.-Null
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
> int num;
> List<string> list;
> // [1] 컬렉션 리스트가 null이면 Count를 읽을 수 없기에 0으로 초기화
> list = null;
> num = list?.Count ?? 0; // null이면 0반환, 오른쪽 값 사용
> num
0
> // [2] 컬렉션 리스트가 null이 아니면 Count 속성의 값 사용
> list = new List<string>();
> list.Add("see you again)
> num = list?.Count ?? 0; // null이 아니기 때문에 왼쪽 값 사용
> num
13
Author And Source
이 문제에 관하여(C#교과서 마스터하기 19. Null), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ansalstmd/C교과서-마스터하기-19.-Null저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)