2020년 3월 24일 화요일

C# 객체끼리 비교할때

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
객체끼리 비교할 때
프로그래밍할 때 등가 연산자(==연산자나 != 연산자)를 사용해 두 개의 객체를 비교할 때가 자주 있습니다.
이때 주의해야 할 점은 값형과 참조형 사이에는 '같다'라는 의미가 다르다는 점입니다.
값형 = 일반적으로 알고있는 같다의 개념
참조형 = 일반적으로 알고있는 개념이 아니다
Sample a = new Sample{NUM = 1, STR = "C#"};
Sample b = new Sample{NUM =1 , STR = "C#"};
if(a == b)
{
    a와 b는 메모리 상에서 각각 별도로 확보된 객체이므로
    이 부분에 작성된 코드는 실행되지 않는다.
}
다음 코드에서는 동일한 참조를 가지고 있으므로 같다고 판정됩니다.
Sample a = new Sample{NUM = 1, STR = "C#"};
Sample b = a;
if(a == b)
{
    a와 b는 메모리 상에서 동일한 객체를 참조하므로
    이 부분에 작성된 코드가 실행된다.
}
cs

댓글 없음:

댓글 쓰기

git rejected error(feat. cherry-pick)

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