c#์์๋ property(์์ฑ)์ด๋ผ๋ ๊ฒ์ด ์๋ค.
c++์์๋ ๋ฐ์ดํฐ์ ์๋์ ์ํด getter setter์ ์ฐ๋๋ฐ
c#์ get set์ผ๋ก ์ฐ๊ณ ์ด๋ฐ ๋ฐฉ์์ property๋ผ๊ณ ํ๋ค.
ํด๋์ค์์ ์ ๋ณด ์๋์ ์ํ์ฌ ํน์ ๋ณ์๋ฅผ private ์ ์ธํ๋ฉด ํด๋์ค ์ธ๋ถ์์๋ access ๋ถ๊ฐ๋ฅํ๋ค.
์ด๋ฐ ๊ฒฝ์ฐ์, ์ธ๋ถ ํด๋์ค์ ๋ฉค๋ฒ๋ณ์์ ๋ํ ์ ๊ทผ์ด ํ์ํ ๊ฒฝ์ฐ(๋ค๋ฅธ ํด๋์ค๊ฐ ํด๋น ๋ณ์๊ฐ์ ๋ฐ๊ฟ์ผ ํ ๊ฒฝ์ฐ) get,set์ ํตํด ์ ๊ทผํ ์ ์๊ฒ ๊ตฌํํด์ผ ํ๋ค.
ํ๋กํผํฐ ์ฌ์ฉ๋ฒ
private๋ก ์ ์ธํ ๋ณ์๋ฅผ ์ป๊ฑฐ๋ ์ธํ ํ๊ธฐ ์ํด get, set ๋ฉ์๋๋ฅผ ๊ตฌํํด์ผ ํ๋ค.
get ์ ๊ทผ์์ ๋ํ ์ฝ๋ ๋ธ๋ก์ ์์ฑ์ ์ฝ์ ๋ ์คํ๋๊ณ ,
set ์ ๊ทผ์์ ๋ํ ์ฝ๋ ๋ธ๋ก์ ์์ฑ์ ์ ๊ฐ์ ํ ๋นํ ๋ ์คํ๋๋ค.
set ์ ๊ทผ์๊ฐ ์๊ณ get ์ ๊ทผ์๋ง ์๋ค๋ฉด ์ฝ๊ธฐ ์ ์ฉ,
get ์ ๊ทผ์๊ฐ ์๊ณ set ์ ๊ทผ์๋ง ์๋ค๋ฉด ์ฐ๊ธฐ ์ ์ฉ์ผ๋ก ๊ฐ์ฃผ๋๋ค.
๊ตฌํ๋ฐฉ๋ฒ:
class ํด๋์ค๋ช
{
private ํ๋๋ช ;
public ๋ฐ์ดํฐํ์ ํจ์๋ช (์ธ์)
{
get { //ํด๋น ๋ณ์๊ฐ์ ๋ฆฌํด์ผ๋ก ๋๋ ค์ค
return ํ๋๋ช ;
}
set {
ํ๋๋ช = value;
}
}
}
๊ฐ๋ น,
public class Player : MonoBehaviour
{
์ค๋ต
private Vector3 dir = Vector3.zero;
private GameManager manager = null;
public GameManager Manager
{
get { return manager; }
set { manager = value; }
}
public Vector3 Dir
{
get { return dir; }
set { dir = value; }
}
...์ค๋ต
}
<ํน์ง ์์ฝ>
1. get ์์ฑ ์ ๊ทผ์๋ ์์ฑ ๊ฐ์ ๋ฐํํ๊ณ , set ์ ๊ทผ์๋ ์ ๊ฐ์ ํ ๋นํ๋๋ฐ ์ฌ์ฉํ๋ค.
2. set ์ ๊ทผ์์ value ํค์๋๋ set ์ ๊ทผ์๊ฐ ํ ๋นํ๋ ๊ฐ์ ์ ์ํ๋๋ฐ ์ฌ์ฉํ๋ค.3. set ์ ๊ทผ์๋ง์ ๊ตฌํํ๋ฉด ์ฐ๊ธฐ ์ ์ฉ, get ์ ๊ทผ์๋ง์ ๊ตฌํํ๋ฉด ์ฝ๊ธฐ ์ ์ฉ์ด๋ค.
->get์ ๊ทผ์ ํ๋๋ง ์ฌ์ฉํ๋ฉด ์ฝ์ด์ค๋ ๊ฒ๋ฐ์ ํ ์๊ฐ ์๋ค. ์ฆ, set์ ์์ ๋ฉด ์์ ์์ ์ด ๋ถ๊ฐ๋ฅ.
set ์์ private๋ฅผ ๋ถ์ฌ์ ๋ด๋ถ ํด๋์ค์์๋ง ์ฌ์ฉ๊ฐ๋ฅํ๊ฒ ํ ์๋ ์๋ค. set์ ๊ทผ์๋ง ์ฌ์ฉํ๋ฉด ์ธ ์๋ฐ์ ์๋ค.
ํด๋น ํฌ์คํ ์ ์์ฑํ๋๋ฐ ์ฐธ๊ณ ํ ๋งํฌ์ ๋๋ค.
์์ฑ ์ฌ์ฉ - C# ํ๋ก๊ทธ๋๋ฐ ๊ฐ์ด๋
๋ค์ ์์ ์์๋ C#์ ์์ฑ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. get ๋ฐ set ์ ๊ทผ์๊ฐ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์ก์ธ์ค๋ฅผ ๊ตฌํํ๊ณ ์์ฑ ์ฌ์ฉ๋ฒ์ ์์๋ณด๋ ๋ฐฉ๋ฒ์ ํ์ธํฉ๋๋ค.
docs.microsoft.com
'Unity > Unity(๊ธฐ์ด)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| unity ์ํ์ข์ฐ ์ฝ๋ 2๊ฐ์ง Input.GetKey vs Input.GetAxis ๊ทธ๋ฆฌ๊ณ Translate() ํจ์์ ํ์ฉ (0) | 2021.08.12 |
|---|---|
| ์ ๋ํฐ Quaternion (0) | 2021.06.05 |
| [์ ๋ํฐ] Debug.Log์ Debug.LogFormat ํ์ฉ. ์ด๋ค ๊ฒ์ ์จ์ผํ ๊น? (0) | 2021.05.22 |
| ์ ๋ํฐ ์ฝ๋ฃจํด Coroutine (0) | 2021.05.19 |
| ์ ๋ํฐ SetSprite (0) | 2021.05.19 |