2020년 3월 24일 화요일

null 합체 연산자,null 조건 연산자

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
var message = GetMessage(code)
if(message == null)
message = DefaultMessage();
null 합체 연산자
var message = GetMessage(code) ?? DefaultMessage();
1.Getmseeage를 호출하고 반환값을 message 변수에 넣기 위해 다음과 같이 작성
var message = GetMessage(code);
2.그런데 Getmessage 메서드는 null을 반환할 때도 있음
3.null 일 때는 DefaultMessage 메서드의 값을 넣으면 되니까 ?? 연산자를 사용
var message = GetMessage(code)?? DefaultMessage();
null조건 연산자
if(sale == null)
 return null
else
return sale.Product;
null조건 연산자
return sale?.Product;
배열에도 사용가능
var first = customers?[0];
해석
Customer first = (customers == null)? null: customers[0];
두가지를 합친 예
var product = GetProduct(id);
var name = product?.Name ?? DefaultName;
해석
var name = (product == null) ? DefaultName : product.Name;
=의 우변에 product가 두 번 나타나서 코드가 조금 복잡하게 느껴짐.
cs

댓글 없음:

댓글 쓰기

git rejected error(feat. cherry-pick)

 문제 아무 생각 없이 pull을 받지않고 로컬에서 작업! 커밋, 푸시 진행을 해버렷다. push에선 remote와 다르니 당연히 pull을 진행해라고 하지만 로컬에서 작업한 내용을 백업하지 않고 진행하기에는 부담스럽다(로컬작업 유실 가능성) 해결하려...