2020. 9. 10. 17:56ใ์ ๊ณต ๊ณผ๋ชฉ/์๋์ฐ ํ๋ก๊ทธ๋๋ฐ
์๋์ฐ ํ๋ก๊ทธ๋๋ฐ - C#ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ
C# ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
--> .NET์ ์ต์ ํ๋ ์ธ์ด, ์๋ฐ์ ๋จ์ ์ ๋ณด์(์ปดํ์ผ ๋ฐฉ๋ฒ)
C#์ ํน์ง
--> ๊ฐ์ฒด์งํฅ ์ธ์ด, ๋ธ๋ฆฌ๊ฒ์ดํธ์ ์ด๋ฒคํธ ์กด์ฌ, ๋ฉํฐ์ค๋ ๋, ์์ธ์ฒ๋ฆฌ, ์ฐ์ฐ์ ์ค๋ณต, ์ ๋ค๋ฆญ.
์ด ์ฅ์์๋
C#์ ์๊ฐ์ ํน์ง์ ๊ณต๋ถํ ๋ค, C#์์ ์ฌ์ฉ๋๋ ์ฉ์ด๋ค(์์ ์๋ ๋ธ๋ฆฌ๊ฒ์ดํธ ๊ฐ์)์ ๊ณต๋ถํ๋ค.
์ฒ์๋ถํฐ ๋๋ฌด ๊น์ด ๋ค์ด๊ฐ์ง ์๊ณ '์ ์ด๊ฐ๋ ์ ์ด๋ฐ๊ฑฐ๊ตฌ๋'๋ง ์ง๊ณ ๋์ด๊ฐํ ๋ ์ด๋ณด์๋ค์ ๋๋ ค์์ ๊ฐ์ง์ง ์๊ธธ ๋ฐ๋๋ค.
C#์ C++๊ณผ Java์ ์๋ค๊ฐ์ ๊ฒ์ด๋ผ๊ณ ํ์๋ ์๊ฐํ๋ค. C#์ ์ฌ์ฉํ๋ฉด์ ์ด ๋์ ์ฅ์ ์ ๊ฐ์ ธ์ ์ฌ์ฉํ๋ ๋๋์ด ๋ค์๊ธฐ ๋๋ฌธ์ด๋ค.
C#์ ์คํ๊ณผ์ ์ ์ด๋ป๊ฒ ๋ ๊น?
๋ค์ ์์ ํ๋ก๊ทธ๋จ์ ๋ณด์
using System
class Coldingsite {
public static void main() {
Console.WriteLine("WelCome to Colding blog!");
}
}
ํ๋ํ๋ ํํค์ณ๋ณด์.
using --> Systemํด๋์ค๋ฅผ ๊ฐ์ ธ์จ๋ค. ์ฆ ์ด๋๊ฐ์ ์ ์ฅ๋์ด์์ System์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ ์ด๋ค๋ ๊ฒ์ด๋ค.
class ํด๋์ค์ด๋ฆ --> ํด๋์ค์ด๋ฆ์ ์ง๊ณ ์ถ์๊ฑฐ ์ง์. ์ฌ๋งํ๋ฉด ๋ด์ฉ๊ณผ ๊ด๋ จ์๋ ๊ฒ์ผ๋ก!
public static void main() --> ์ด๋ ๋ฉ์ธํจ์์ด๋ค. public์ ๋ค๋ฅธ๊ณณ์์ ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ ํ๋ค๋ ๋ป์ด๊ณ static์ ๊ฐ์ด ๋ณํ์ง ์๋๋ค, void๋ ๋ฆฌํดํ์ ์ด ์๋ค(์ฆ ์ถ๋ ฅ๋ง ํ๋ค๊ฑฐ๋, ํธ์ถ๋ง ํ๋ค๋ ๊ฒ์ด๋ค.). main์ ๋ง ๊ทธ๋๋ก ํจ์์ด๋ฆ์ด๋ค. mainํจ์๋ ์ฐ๋ฆฌ๊ฐ ์์๋ก ๋ง๋๋ ์ฌ์ฉ์ ์ง์ ํจ์๊ฐ ์๋๋ ์ด ์ ์ ์ํด๋์. ๋ง์ฝ ๋๋ฒ๊น ์ ํ๊ฒ ๋๋ฉด mainํจ์๋ฅผ ์ฐพ์๊ฐ ์คํ์ด ๋๋ค. ์ ์ด์ ํ๊ฒฝ์ด ๊ทธ๋ ๊ฒ ์ค์ ๋์ด์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฌ๊ธฐ์ using System์ ๋ค์ ์คํ์ด์ค๋ผ๊ณ ๋ถ๋ฅด๊ณ
Console.WriteLine()์ ์ถ๋ ฅ ๋ฉ์๋๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์คํ ๊ณผ์ ์ ์ด๋ ๋ค.
์์ ์์คํ์ผ์ ์ปดํ์ผ๋ฌ๊ฐ ์ปดํ์ผํ๋ฉด exe(์คํํ์ผ์ด)์๊ธฐ๊ณ ๊ทธ ์คํํ์ผ์ ๋ค์ ์ปดํจํฐ ์ธ์ด๋ก ๋ฒ์ญํด์ ์ฐ๋ฆฌ ์ฐฝ์ ๋์์ง๊ฒ ๋๋ค. ์ค์ํ ๊ฑด ๋ฒ์ญ๊ณผ์ ์ด ๋ ๋ฒ ์ผ์ด๋๋ ๊ฒ์ด๋ค.
C# ๊ธฐ๋ณธํน์ง
์ง๋ฃจํ ์ ์๋ ๋ด์ฉ์ด๋ค. ์ธ์ฐ๋ ค๊ณ ํ์ง ๋ง๊ณ '์ ์ด๋ฐ๊ฒ ์ฐ์ด๊ตฌ๋'๋ก ์์๋๊ณ ๋์ค์ ํ์ํ ๋ ์ฐพ์์ ์ฐ๋ฉด ๋๋ค.
์๋ฃํ
- ๋ณ์๋ ์์๊ฐ ๊ฐ์ง ์ ์๋ ๊ฐ๊ณผ ์ฐ์ฐ์ ์ข ๋ฅ๋ฅผ ๊ฒฐ์
- C#์ ์๋ฃํ์ ๊ฐํ๊ณผ ์ฐธ์กฐํ์ด ์กด์ฌํ๋ค.
- ์ซ์ํ์๋ ์ ์ํ๊ณผ ์ค์ํ์ด ์๋ค. ์ ์ํ ex)short, int ์ค์ํ ex)double, decimal
์ฐ์ฐ์
- C์ ์ ์ฌ
- ํ ๊ฒ์ฌ ์ฐ์ฐ์ is - ํธํ ๊ฐ๋ฅํ์ง ๊ฒ์ฌ, as - ์ง์ ํ ํ์ผ๋ก ๋ณํ
๋ฐฐ์ดํ
- ๊ฐ์ ํ์ ํต์งธ๋ก ๋ฌถ์ ํํ ex) int[] vector; //ex) int[5] vector : intํ์ 4๋ฐ์ดํธ์ด๊ณ 4๋ฐ์ดํธ์ง๋ฆฌ 5๊ฐ์ ๋ฉ๋ชจ๋ฆฌ 20๋ฐ์ดํธ๊ฐ ์๊ธด๋ค. ("์ ํํ๋ ์ค๋น๊ฐ ๋์ด ์๋ค"์ด๋ค. new๋ฅผ ํตํด์ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ผ ์๊ธฐ๊ธฐ ๋๋ฌธ). ์ด๋ ๋ค์์ ์์๋ณด์.
์คํธ๋ง
- ๋ฌธ์์ด์ด๋ค. string s ="hello"๋ฅผ ํ๋ฉด s๋ผ๋ ๋ณ์๋ hello๊ฐ ์๋ ๊ณณ์ ์ฐธ์กฐํ๊ฒ ๋๋ค.
- ์ฐ๊ฒฐ --> string s = "hello"; s+= "world"; ์์ ๋๊ฐ๋ฅผ ์ฐ๊ฒฐํ๋ฉด Hello World๊ฐ ๋๋ค.
์ด์ ๋ถํฐ C#์ ์ค์ํ ํน์ง๋ค์ ๋ํด์ ์์๋ณผ ๊ฒ์ด๋ค.
1) ํด๋์ค
- ๊ฐ๋ ์ ๊ฐ์ฒด๋ฅผ ์ค๊ณํ๋ ํ ์ค๊ณ๋ ์ด๋ ๊ฒ ๋ณดํต ๋ง์ด ์ฌ์ฉํ๋ค.
- ๊ฐ์ฒด์ ํด๋์ค๋ฅผ ๊ฐ๋จํ ์ ์ํด๋ณด์. ํด๋์ค๋ ๋ถ์ด๋นต์ ๋ง๋๋ ํ์ด๋ค. ์ด๋ ํ์ด ํด๋์ค์ด๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ ํตํด์ ๋ถ์ด๋นต์ ๋ง๋๋๋ฐ ์ด๋ ๋ถ์ด๋นต์ด ๊ฐ์ฒด(instance)์ด๋ค.
- ํด๋์ค๋ ํ๋์์ญ๊ณผ ๋ฉ์๋์์ญ์ผ๋ก ๋๋๋๋ฐ, ํ๋์์ญ์ ๊ธฐ๋ณธ์ ๋ณด ๊ฐ์ ๊ฒ๋ค์ด๋ค. ex)์๋์ฐจ์ ์ต๋์๋, ์๋์ฐจ ์๊น, ํ์ฌ๋ช . ๋ฉ์๋์์ญ์ ์๋์ฐจ๊ฐ ํํ๋ ๊ฒ๋ค์ด๋ค. ex)์๋์ฐจ ์ถ๋ฐ(์๋=ON, ๊ธฐ์ด1๋จ ๋ฑ). ํ๋๋ ๋ช ์ฌ ๋ฉ์๋๋ ๋์ฌ์ด๋ค. ์๋์ ํด๋์ค๋ฅผ ์ค๊ณํ ๊ฒ์ ๋ณด์.
class RamenMaker {
public bool onState;
public bool StartRamenMaker() {
if(Onstate == true)
Console.WriteLine("The RamenMaker is already on");
else
Console.WriteLine("The RamenMaker is now on");
}
}
์์ ํด๋์ค๊ฐ ์ค๊ณ๊ฐ ๋์๋๋ฐ ์ด๋ฅผ ์คํํ๋ ค๋ฉด mainํจ์์ RamenMakerํด๋์ค๋ฅผ ์ ์ํ๊ณ ํด๋์ค๋ณ์๋ฅผ ํตํด์ onState์ ์ ๊ทผํด, true๋ false๊ฐ์ ์ฃผ์ด์ผ ํ๋ค. ๊ทธ ํ ํจ์๋ฅผ ํธ์ถํด์ผ ํ๋ค.
๊ธ์ด ์ดํด๊ฐ ์๋ ๋๋ ์ฝ๋๊ฐ ์งฑ์ด๋ค.
public static void main() {
RamenMaker rm = new RamenMaker rm();
rm.onState = ture; //onState๊ฐ์ true๋ฅผ ์คฌ์ผ๋ if์ true์ ํด๋นํ๋ ๋ฌธ์ฅ์ด ์ถ๋ ฅ๋๋ค.
rm.StartRamenMaker;
}
2) ํ๋กํผํฐ
ํ๋กํผํฐ๋ public์ด ์๋ private์ ๊ทผ์ด ๊ฑธ๋ ค์๋ ํ๋๋ฅผ ํ์์ ์ผ๋ก ๋ค๋ฃจ๋ ๋ฉ์๋์ด๋ค.
๊ฐ์ ์ง์ ํ๋(set), ๊ฐ์ ๊ฐ์ ธ์ค๋(get)์ด ๋๊ฐ์ง๋ก ๋๋ ์ง๋ค.
ํ๋กํผํฐ์ ํน์ง
- ํ๋์ฒ๋ผ ์ฌ์ฉ๋์ง๋ง, ๋ฉ์๋์ฒ๋ผ ๋์
- ๋ฐฐ์ ๋ฌธ์ ์ผ์ชฝ์์ ์ฌ์ฉ๋๋ฉด ์ , ์ค๋ฅธ์ชฝ์์ ์ฌ์ฉ๋๋ฉด ๊ฒ (์๋ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ์ดํดํ๋๋ก ํ์)
using System
class PropertyClass {
private int privateValue;
public int PrivateValue {
get {return privateValue;}
set {privateValue = value;}
}
public void PrintValue() {
Console.WriteLine("Hidden Value = " + privateValue);
}
}
class PropertyApp {
public static void main() {
int n;
PropertyClass obj = new PropertyClass();
obj.PrivateValue = 100 //set method
obj.PrintValue();
n = obj.PrivateValue; // get method
Console.WriteLine("Value =" +n);
}
}
์ฝ๋๋ฅผ ๋ฏ์ด๋ณด์.
๋จผ์ privateValue๋ผ๋ ๋ณ์๋ฅผ ํ๋์ ์ ์ธํ๋ค. ๊ทธ ํ ๋๋ฌธ์ PrivateValue๋ผ๋ ํจ์์ getํจ์์ setํจ์๋ฅผ ์ง์ ํ๋ค. ์ด๊ฒ์ด ํ๋กํผํฐ์ด๋ค.
๋ฐ์ printํจ์๋ ํธ์ถํ์ ๋ WriteLine๋ด๋ถ์ ์๋ ๋ฌธ์์ด ๋ฐ ๋ณ์๊ฐ ์คํ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐ์ APP์ด๋ผ๋ ํด๋์ค์ ๋ฉ์ธํจ์์์ obj๋ฅผ PropertyClass์ privateValue๋ฅผ ์ฌ์ฉํด์ผํ๋ฏ๋ก ์ด ํ์์ ํด๋์ค๋ฅผ ์ ์ธํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ obj.PrivateValue = 100; ์ฒ๋ผ ์ผ์ชฝ์ ์ฌ์ฉ๋์์ผ๋ set, n= obj.PrivateValue ์ฒ๋ผ ์ค๋ฅธ์ชฝ์ ์ฌ์ฉ๋์์ผ๋ get์ด๋ค. ์ผ์ชฝ ์ค๋ฅธ์ชฝ ๊ตณ์ด ๋๋ ์ ์ธ์ธํ์์๋ค. ๊ทธ๋ฅ ์ค๋ฅธ์ชฝ์ ์๋ ๊ฑธ ์ผ์ชฝ์ ๋ด๋๋ค๋ ๊ฒ๋ง ์๊ฐํ๋ฉด ์์ฝ๊ฒ ํ ์ ์๋ค.
๋ค์์ฅ์ ์ด์ด์ ๋ธ๋ฆฌ๊ฒ์ดํธ, ์ด๋ฒคํธ, ์ค๋ ๋, ์ ๋ค๋ฆญ์ ๋ํด์ ์์๋ณผ ๊ฒ์ด๋ค.
'์ ๊ณต ๊ณผ๋ชฉ > ์๋์ฐ ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋์ฐ ํ๋ก๊ทธ๋๋ฐ -Delegate (0) | 2020.09.17 |
---|---|
์๋์ฐ ํ๋ก๊ทธ๋๋ฐ - ํผ์ ๋ํ์ฌ (0) | 2020.09.10 |
์๋์ฐ ํ๋ก๊ทธ๋๋ฐ - C# ๊ธฐ๋ณธ๊ฐ๋ (2) (0) | 2020.09.10 |
์๋์ฐ ํ๋ก๊ทธ๋๋ฐ - ์ฝ์๊ณผ ์ํผ(C#) (3) | 2020.09.04 |
์๋์ฐ ํ๋ก๊ทธ๋๋ฐ Code Convention (4) | 2020.09.04 |