viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced82fa11d02831fe384ecd5bf5471a0304a0eb0d97158615490b3d2c251c5707fb76558e829e86333c9baff62b8b08b3c0d53f3ed49a770420ff6e

๋ฆฌํŒฉํ† ๋ง ํ•˜๊ณ ์‹ถ๋‹ค!




์˜ค๋Š˜์€ ๊ฐ„๋งŒ์— ๋ฆฌํŒฉํ† ๋ง ์ฆ๊ธฐ๋Š” ์ค‘์ธ๋ฐ


๊ฝค ๊ดœ์ฐฎ์€ ๋ฆฌํŒฉํ† ๋ง์ด๋ผ ์ƒ๊ฐ๋˜์„œ ์ ์–ด๋ด„


if(xxx == null)


if(xxx != null)


๋“ค์„


if(xxx.Isxxed)


if(xxx.Hasxxx)


๋กœ ๋ฐ”๊พธ๋Š” ๋ฆฌํŒฉํ† ๋ง์ž„.




์ด๋Ÿฌ๋ฉด ์žฅ์ ์ด ๋„์ฒดํฌ๊ฐ€ ํ•ด๋‹น ํด๋ž˜์Šค์˜ ์ฑ…์ž„์ด ๋˜์–ด์„œ


ํŠน์ • ํด๋ž˜์Šค์˜ ํŠน์ • ๋ณ€์ˆ˜๊ฐ€ null์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ฒŒ ๋จ.


ํŠนํžˆ xxx == null ์ด๊ฒƒ์€ ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ null ์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•˜๋Š” ๊ฒƒ์ด์ง€,


์–ด๋–ค '์˜๋ฏธ'๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ž–์•„?



๊ตฌํ˜„์€ ๋งค์šฐ ์‹ฌํ”Œํ•จ


class Actor{

Item Item {get; private set;}

}


์„


class Actor{

private Item _item;

public bool HasWeapon => _item != null;

public bool IsUnEquipped => _item == null;

}


์š”๋ ‡๊ฒŒ ๊ณ ์น˜๋ฉด ๋•ก์ž„.


์ด๋Ÿฌ๋ฉด ๋„์ฒดํฌ๋Š” Actor ์•ˆ์—์„œ๋งŒ ํ–‰ํ•˜๊ฒŒ ๋˜๊ณ ,


์™ธ๋ถ€์—์„œ๋Š” ์ข€ ๋” ์˜๋ฏธ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์“ธ ์ˆ˜ ์žˆ์Œ.



if(Actor.HasWeapon) {

Actor.Attack();

}


if(Actor.IsUnEquipped){

Actor.Equip(newItem)

}



์•กํ„ฐ์˜ ์•„์ดํ…œ์ด null์ธ์ง€ ์™ธ๋ถ€์—์„œ๋Š” ์•Œ ํ•„์š”๊ฐ€ ์—†์–ด์กŒ๋‹ค.


๊ทธ๋ฆฌ๊ณ  ๋‚˜์ค‘์— HasWeapon ๋“ฑ์˜ bool ์ด ๋ณด๋‹ค ๋ณต์žกํ•œ ์กฐ๊ฑด์„ ๊ฐ€์ง€๊ฒŒ ๋˜์–ด๋„,


Actor ํด๋ž˜์Šค๋งŒ ๊ณ ์ณ์ฃผ๋ฉด ๋˜๋ฏ€๋กœ ์™ธ๋ถ€์ฝ”๋“œ์—๋Š” ์•„๋ฌด๋Ÿฐ ์ˆ˜์ •์‚ฌํ•ญ์ด ์ƒ๊ธฐ์ง€ ์•Š์•„ ์ข‹์Œ.







ํ•˜...


c#8 ๋„ ์•ˆ๋˜๋Š” ์œ ๋‹ˆํ‹ฐ ๋ถ™๋“ค๊ณ  ๊ณ ์ƒํ•œ๋‹ค...



์ŠคํŒŒ๊ฒŒ