๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ/C#

[C#] ๋žŒ๋‹ค์‹๊ณผ Func, Action ๋Œ€๋ฆฌ์ž

by HanaV 2023. 9. 18.
728x90

๋žŒ๋‹ค์‹ ์„ ์–ธํ•˜๋Š” ๋ฒ•

๋žŒ๋‹ค์‹์€ ๊ธฐ๋ณธ์ ์œผ๋กœ
(๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชฉ๋ก) => ์‹ ํ˜น์€ {์ฝ”๋“œ๋ธ”๋ก}
ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด ์•„๋ž˜ ๋‘ ์ฝ”๋“œ๋Š” ๊ฐ™์€ ๋ฌด๋ช… ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

HelloWorld H = delegate(int a, int b)
		{
               		return a + b;
               }
               
HelloWorld H = (a, b) => a + b;

 

Func ๋Œ€๋ฆฌ์ž

Func ๋Œ€๋ฆฌ์ž๋Š” ์ตœ๋Œ€ 16๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. (0๊ฐœ ~ 17๊ฐœ)

Func<int, int> addOne = (int x) => x + 1;
int result1 = addOne(5); // 6

๋ณดํ†ต์€ Func<int, int>๋ผ๊ณ  ์„ ์–ธํ•˜๊ธฐ ๋ณด๋‹ค๋Š”, var๋กœ ์„ ์–ธํ•œ๋‹ค.

var addTwo = (int x) => x + 2;
int result2 = addTwo(5); // 7

 

Action ๋Œ€๋ฆฌ์ž

Action ๋Œ€๋ฆฌ์ž๋Š” ๋ฐ˜ํ™˜ ๊ฐ’์ด ์—†๊ณ , ์–ด๋– ํ•œ ์ž‘์—…๋งŒ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

Action greet = () => Console.WriteLine("Hello, world!");
greet(); // "Hello, world!" ์ถœ๋ ฅ

์‰ฝ๊ฒŒ ๋งํ•˜์ž๋ฉด, Func๋Š” public int A(){} ์ฒ˜๋Ÿผ ๋ฐ˜ํ™˜๊ฐ’์ด ์žˆ๋Š” ๊ฒƒ, Action์€ void์ฒ˜๋Ÿผ ๋ฐ˜ํ™˜ ๊ฐ’์ด ์—†๋Š” ๊ฒƒ์ด๋‹ค.

 

728x90

"); wcs_do();