*์ด ๊ธ์ <์ด๊ฒ์ด C#์ด๋ค> ์ฑ ์ ๋ฐํ์ผ๋ก ๊ณต๋ถํ ๊ธ์ ๋๋ค.
const
const float range = 5f; // ๊ณต๊ฒฉ ์ฌ๊ฑฐ๋ฆฌ
์ปดํ์ผ๋ฌ๋ ์์์ ์ง์ ๋ ๊ฐ์ ์คํํ์ผ ์์ ๊ธฐ๋กํด๋๋ค. ์ด ๋ง์ ์์๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ธฐ ์ ๋ถํฐ ์ด๋ฏธ ๊ฐ์ด ์ ํด์ ธ ์๋ค๋ ์๋ฏธ๊ฐ ๋๋ค. (์ปดํ์ผ ํ์์ ์ด๋ฃจ์ด์ง)
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ณ์์ ๋ฌ๋ฆฌ, ์์๋ ํ๋ก๊ทธ๋จ ์คํ ์ค(๋ฐํ์)์๋ ๊ทธ ๊ฐ์ ์ ๋๋ก ๋ฐ๊ฟ ์ ์๋ค.
์ด๋ฌํ const ์์๋ ๋ค์๊ณผ ๊ฐ์ ํน์ง๋ค์ ๊ฐ์ง๋ค.
1. ์ ์ธ ์, ๋ฐ๋์ ๊ฐ์ ํ ๋นํด์ผ ํ๋ค.
// const float range; ์ปดํ์ผ ์ค๋ฅ
const float range = 5f;
2. ์๋์ผ๋ก ์ ์ ๋ณ์(static) ์์ฑ์ ๊ฐ์ง๋ค.
class Monster
{
public const float range = 5f;
}
class Main
{
static void Main(string[] args)
{
float range = Monster.range;
}
}
readonly
class Monster
{
private readonly float range; // ์ฝ๊ธฐ ์ ์ฉ ํ๋
public Monster(float range)
{
this.range = range;
}
}
์ฝ๊ธฐ๋ง ๊ฐ๋ฅํ ํ๋๋ค. ํด๋์ค๋ ๊ตฌ์กฐ์ฒด์ ๋ฉค๋ฒ๋ก๋ง ์กด์ฌํ ์ ์์ผ๋ฉฐ, ์์ฑ์ ์์์ ์ด๊ธฐํ๊ฐ ๊ฐ๋ฅํ๋ค.
์์ฑ์ ์์์ ํ ๋ฒ ๊ฐ์ ์ง์ ํ๋ฉด, ๊ทธ ํ๋ก๋ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ ๊ฒ์ด ํน์ง์ด๋ค.
์ฆ, const์ ๋ฌ๋ฆฌ ๋ฐํ์ ์ค์ ์์ฑ๋์ด ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ ๊ธฐํ๊ฐ ํ ๋ฒ์ ์๋ ์ ์ด๋ค.
readonly ์์๋ ๋ค์๊ณผ ๊ฐ์ ํน์ง๋ค์ด ์๋ค.
1. ์ ์ธ ์, ๊ฐ์ ํ ๋นํ์ง ์์๋ ๋๋ค.
readonly float range;
2. static ์์๋ก ๋ง๋ค ๊ฒฝ์ฐ์๋ static ์์ฑ์๋ฅผ ํตํด ์ด๊ธฐํํ ์ ์๋ค.
const์ ๋ฌ๋ฆฌ, ์๋์ผ๋ก static ์์ฑ์ ๊ฐ์ง์ง ์๋๋ค.
class Monster
{
public readonly static float range;
static Monster()
{
range = 10f;
}
}
'๐ฏ๏ธLanguage > C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C#] ํ์ฅ ๋ฉ์๋ (Extension Method) (0) | 2022.03.21 |
---|---|
[C#] ์ค์ฒฉ ํด๋์ค(Nested Class)์ ๋ถํ ํด๋์ค(Partial Class) (2) | 2022.03.21 |
[C#] ๋ถ๋ชจ ํด๋์ค์ ์์ ํด๋์ค ์ฌ์ด์ ํ๋ณํ์ ํด ๋ณด์! (is, as) (0) | 2022.03.21 |
[C#} new ์ sealed ํค์๋ (0) | 2022.03.21 |
[C#] ๋ถ๋ชจ ํด๋์ค๋ฅผ ๊ฐ๋ฆฌํค๋ Base ํค์๋์ ์์ฑ์ (0) | 2022.03.20 |