728x90
반응형
c#의 자료형에는 두 가지 타입이 있는데,
값 형식(Value type) [실제 데이터 값을 저장하는 형식] : int , double, char, bool 등
참조 형식(reference type) [변수가 값이 저장되어 있는 곳의 위치를 저장] : object, string, dynamic, class 등
값 형식은 다른 함수에서 값을 변경한다고 값이 변경되지 않는다.
그 때는 ref 키워드를 사용해서 변경해주는데 그건 하단 링크를 참조하자.
https://hengs.tistory.com/50?category=1063480
그러나 배열은 참조형이기 때문에 변경이 바로 가능하다.
private void Form1_Load(object sender, EventArgs e)
{
string[] arr = { "가", "나", "다" };
label1.Text = arr[0];
test(arr);
label2.Text = arr[0];
test(arr);
label3.Text = arr[0];
}
public void test(string[] arr)
{
arr[0] = "가1";
}
public void test2(string[] s)
{
s[0] = "가1";
}
string[]를 하나 선언하여 [0]번에 "가"라는 값을 주었다.
그리고 test에 해당 arr를 전달하여 test 함수에서 arr[0] 값을 "가1"로 변경하였다.
test2는 같은 변수명으로 받지 않아도 된다는 것을 test하기 위해 진행하였다.
배열은 참조형이기 때문에 ref 키워드 없이도 값이 변경된 것을 확인할 수 있다.
728x90
반응형
'c# > 기타' 카테고리의 다른 글
[c#] Excel Read , 속도 개선, OleDbConnection 사용 (1) | 2022.01.12 |
---|---|
[c#] 일반화 메소드 , 한 개 함수로 여러 타입 사용 (0) | 2021.12.27 |
[c#] ref , 다른 함수에서 변수값 변경 (0) | 2021.12.24 |
[c#] Regex 숫자만 추출 , 문자만 추출 , ismatch (0) | 2021.12.24 |
[c#] DateTime 현재날짜, 현재시간 (0) | 2021.12.16 |