일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- docker
- Python
- vim
- 플러터
- Algorithm
- C언어 포인터
- github
- c#
- 유니티
- c# winform
- 구조체
- C# delegate
- c# 윈폼
- c# 추상 클래스
- jupyter lab
- 깃
- 다트 언어
- dart 언어
- Flutter
- gitlab
- c언어
- Houdini
- Unity
- Data Structure
- C++
- HTML
- git
- 도커
- jupyter
- 포인터
Archives
- Today
- Total
nomad-programmer
[Programming/C#] null 조건부 연산자 본문
널(null) 조건부 연산자 ?.는 C# 6.0에서 도입되었다.
?. 가 하는 일은 객체의 멤버에 접근하기 전에 해당 객체가 null인지 검사하여 그 결과가 참(즉, 객체가 null)이면 그 결과로 null을 반환하고, 그렇지 않은 경우에는 . 뒤에 지정된 멤버를 반환한다.
// == 연산자를 이용한 코드
Foo foo = null;
int? bar;
if (foo == null)
bar = null;
else
bar = foo.member;
// ?. 연산자를 이용한 코드
Foo foo = null;
int? bar;
bar = foo?.member;
?[] 연산자
?[] 연산자도 동일한 기능을 수행하는 연산자이다. ?[] 는 ?. 와 비슷한 역할을 하지만, 객체의 멤버 접근이 아닌 배열과 같은 컬렉션 객체의 첨자를 이용한 참조에 사용된다는 점이 다르다.
using System.Collections;
using static System.Console;
namespace CSharpExam
{
class OperExample
{
static int Main(string[] args)
{
ArrayList a = null;
// a가 null이 아니면 a의 Add메소드를 호출하여 야구를 집어 넣으라는 뜻.
a?.Add("야구"); // a?.이 null을 반환하므로 Add() 메소드는 호출되지 않음.
a?.Add("축구");
WriteLine($"Count: {a?.Count}");
WriteLine($"{a?[0]}");
WriteLine($"{a?[1]}");
a = new ArrayList();
a?.Add("야구");
a?.Add("축구");
WriteLine($"Count: {a?.Count}");
WriteLine($"{a?[0]}");
WriteLine($"{a?[1]}");
return 0;
}
}
}
/* 결과
Count:
Count: 2
야구
축구
*/
'Programming > C#' 카테고리의 다른 글
[Programming/C#] switch 문에서 데이터 형식에 따른 조건 (0) | 2020.09.06 |
---|---|
[Programming/C#] null 병합 연산자 (0) | 2020.09.06 |
[Programming/C#] 날짜 및 시간 서식화 (0) | 2020.09.06 |
[Programming/C#] CTS (Common Type System) (0) | 2020.09.06 |
[Programming/C#] var : 데이터 형식을 알아서 파악하는 C#컴파일러 (0) | 2020.09.06 |
Comments