๐ฆ ref & out
ref์ out ๋ชจ๋ ๋ฉ์๋์ ์ธ์๋ฅผ ์ ๋ฌํ ๋ ์ฌ์ฉ๋๋ค.
ํ์ง๋ง ์ฐจ์ด์ ์ด ์์ผ๋ ์ด๋ฅผ ๊ณ ๋ คํด์ ์ฌ์ฉํด์ผํ๋ค.
๐ง Document
๐ง ref ํค์๋
int a = 1; // ์ด๊ธฐํ ํ์
// a๋ผ๋ ์ธ์๋ฅผ ๋๊ฒจ๋ฐ์
public void ChangeValue(ref int a)
{
}
- ํด๋น ๋ณ์๊ฐ ํ๋ผ๋ฏธํฐ๋ก ๋๊ฒจ์ง๊ธฐ ์ ์ ์ด๊ธฐํ๋ฅผ ํด์ผํ๋ค.
- ๋ฉ์๋ ์ธ๋ถ์์ ๋ฉ์๋ ๋ด๋ถ๋ก ๊ฐ์ ์ ๋ฌํ๋ค.
๐ง out ํค์๋
int a; // ์ด๊ธฐํํ ํ์ ์์.
// ๋ฉ์๋ ๋ด๋ถ์์ ์ฒ๋ฆฌํ ๊ฐ์ a์๊ฒ ๋๊ฒจ์ค
public void ChangeValue(out int a)
{
}
- ํด๋น ๋ณ์๋ฅผ ์ด๊ธฐํํ ํ์๊ฐ ์๋ค.
- a๋ผ๋ ๋ณ์๋ฅผ ๋ฉ์๋ ๋ด๋ถ๋ก ๋๊ฒจ์ฃผ๋ ๊ฒ์ด ์๋๋ผ, ๋ฉ์๋ ๋ด๋ถ์์ ์ฒ๋ฆฌ๋ ๊ฐ์ a์ ๋ฃ์ด์ฃผ๋ ๊ฐ๋ ์ด๋ค.
๐ง ์ค๋ฒ๋ก๋ฉ
public void ChangeValue(ref int a)
{
}
public void ChangeValue(out int a)
{
}
- ๋ฐํ์ ๋์์ ๋๊ฐ์ ํค์๋๋ฅผ ๊ตฌ๋ถํด์ ๋ค๋ฅด๊ฒ ๋์ํ๋ค.
- ํ์ง๋ง ์ปดํ์ผํ ๋๋ ๋ ํค์๋๋ฅผ ๊ตฌ๋ถํ์ง์๊ณ ์ฒ๋ฆฌํ๋ค.
- ๋ฐ๋ผ์ ๋ ํค์๋๋ฅผ ์ค๋ฒ๋ก๋ฉํ ์ ์๋ค.
'C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C#] Nullable Type (0) | 2022.11.14 |
---|---|
Interface, Abstract, Virtual (0) | 2021.11.12 |
C# ์ฃผ์์ ๋ํ XML ํ๊ทธ (0) | 2021.11.01 |