๐ [C#] C# ๊ธฐ๋ณธ ์ดํด
C#์ด๋?
C#
์ด๋, ๋ง์ดํฌ๋ก์ํํธ์์ ๊ฐ๋ฐํ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก, java
์ ๋ํญ๋ง ์ ๋๋ก ์๊ฐํ ์ ์๋ค.
.net
ํ๋ ์์ํฌ์ ํ ๋ถ๋ถ์ผ๋ก ๋ง๋ค์ด์ก๊ณ , java์ ๋น์ทํ ๋ฌธ๋ฒ์ ๊ฐ์ง๊ณ ์๋ค.
C# ์ปดํ์ผ๋ฌ์ ๊ฐ๋ฐ ๋๊ตฌ๋ค
-
MicroSoft Visual C#: ๋ง์ดํฌ๋ก์ํํธ๊ฐ C#์ ๋ํด ๋ด๋ฆฌ๋ ๋ชจ๋ ํ์ค ์ ์๋ฅผ ๊ฐ์ฅ ์ ํํ๊ณ ์์ ์ ์ผ๋ก ๋ฐ์ํ๋ ์ปดํ์ผ๋ฌ์ด๋ค.
-
Rider: JetBrain์์ ๊ฐ๋ฐํ .net ์ ์ฉ IDE๋ก, C# ํ๋ก์ ํธ๋ ๋ง๋ค ์ ์๋ค.
- Borland: ์ฝ๋๊ธฐ์ด RAD ์คํ๋์ค ์์์ Delphi.net๊ณผ C#.net ๋ ๊ฐ์ง ์ธ์ด๋ก .net ์ ์ง์ํ๋ค.
- Mono
- DotCNU Project
.NET Framework๋?
.NET Framework
๋ ๋ง์ดํฌ๋ก์ํํธ์์ ๊ฐ๋ฐํ ์๋์ฐ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ๋ฐ ์คํ ํ๊ฒฝ์ด๋ค.
๋คํธ์ํฌ ์์
, ์ธํฐํ์ด์ค ๋ฑ์ ๋ง์ ์์
์ ์บก์ํํ๊ณ , ๊ณตํต ์ธ์ด ๋ฐํ์(CLR)์ด๋ผ๋ ์ด๋ฆ์ ๊ฐ์ ๋จธ์ ์์์ ์๋ํ๋ ํ๋ ์์ํฌ์ด๋ค.
.NET Framework
๋ 60๊ฐ ์ด์์ ์ธ์ด๋ฅผ ์ง์ํ์ง๋ง ๋ํ์ ์ผ๋ก ์๋์ ๊ฐ์ ์ธ์ด๋ค์ ์ง์ํ๋ค.
- C#.NET
- VB.NET
- VC++.NET
- J#.NET
- F#.NET
- Jscript.NET
.NET Framework
์์ ์ง์ํ๋ ๊ธฐ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ASP.NET (Active Server Pages.NET)
- ADO.NET
- WCF
- WPF
- WWF
- AJAX (๋น๋๊ธฐ JavaScript ๋ฐ XML)
- LINQ (์ธ์ด ํตํฉ ์ฟผ๋ฆฌ)
๊ธฐ๋ณธ ๋ฌธ๋ฒ
C#์ java์ ๋งค์ฐ ๋น์ทํ ๋ฌธ๋ฒ์ ๊ฐ์ง๊ณ ์๋ค.
์ถ๋ ฅ๋ฌธ
์ผ๋ฐ์ ์ผ๋ก C/C++์์ ์ฐ์ด๋ ์ถ๋ ฅ๋ฌธ์ printf(), cout
ํจ์์ด๋ค.
ํ์ง๋ง, C#์์๋ System.Console.Write()
๋๋ System.Console.WriteLine()
๋ช
๋ น ์ฝ๋๋ฅผ ์ฌ์ฉํด ์ถ๋ ฅ๋ฌธ์ ์์ฑํ๋ค.
using System;
์ ์ ์ฉํ ๊ฒฝ์ฐ์๋ Console.Write()
์ ๊ฐ์ด System ๋จ์ด๋ฅผ ์๋ตํ ์ ์๋ค.
[์์]
using System;
class Test {
static void Main() {
Console.Write("์ค ๋ฐ๊ฟ X");
Console.WriteLine("์ค ๋ฐ๊ฟ O");
Console.WriteLine("์ค \n๋ฐ๊ฟ O");
}
}
์๋ฆฌํ์์
์๋ฆฌ ํ์์๋ฅผ ์ด์ฉํด ์ถ๋ ฅ ์์์ ์ง์ ํ ์ ์๋ค.
{n}๊ณผ ๊ฐ์ ํํ๋ก {0}, {1} ์์๋๋ก ์๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ํด๋น ๊ฐ์ ์ฐจ๋ก๋๋ก ๋๊ฒจ์ฃผ์ด ์ถ๋ ฅํ๋ค.
index๋ 0๋ถํฐ ์์ํ๋ค.
[์์]
using System;
class Text {
static void Main() {
Console.Write("{0}", 100);
Console.WriteLine("{0}, {1}", 100, 200);
Console.WriteLine("{2}-{0}-{1}", 36, ๊ฐ์์ง, ๋ณด๋ฆฌ);
}
}
์๋ฆฌ ํ์์๋ฅผ 2๊ฐ ๋ง๋ค๊ณ ์ธ์๋ฅผ 1๊ฐ๋ง ๋๊ฒจ์ฃผ๊ฒ ๋๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
๋ณ์ ์ ์ธ
๋ณ์๋ C/C++ ๊ณผ ๊ฐ์ ์๋ฃํ์ ์ฌ์ฉํ๋ค.
[์์]
int a=10;
float b;
double c;
int d, e;
String s = "abc";
String k = s + a + "abc";
...
Console.Write(a); // output: 10
Console.Write('a'); // output: a
Console.Write(s) // output: abc
Console.Write(k) // output: abc10abc
...
๋ฐฐ์ด ์ ์ธ
๋ฐฐ์ด์ C/C++๋ณด๋ค๋ java์ ๊ฐ๊น์ด ํํ๋ฅผ ๊ฐ๋๋ค.
[1์ฐจ์ ๋ฐฐ์ด ์์]
int []a = new int[4];
int []a = new int[]{1, 2 ,3 ,4}; // ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ
int []a = {1, 2, 3, 4}; // ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ
[๋ค์ฐจ์ ๋ฐฐ์ด ์์]
// 1์ฐจ์
int []a = new int[3];
int l = a.length; // a์ ๊ธธ์ด
// 2์ฐจ์
int [,]a = new[2, 3]; // ์ผํ๋ก ์ฐจ์์ ๊ตฌ๋ถ
// 3์ฐจ์
int [,,]a = new int[2, 3, 4];
// ๋ค์ฐจ์ ๋ฐฐ์ด ์ด๊ธฐํ
int [,]a = {
{10, 20},
{30, 40},
{50, 60}
};
์ฌ๊ทธ ๋ฐฐ์ด
์ 2์ฐจ์ ์ด์์ ๋ฐฐ์ด์์ ๊ฐ ๋ฐฉํฅ์ ์์๊ฐ ์ผ์ ํ์ง ์์ ๋ฐฐ์ด์ ๋งํ๋ค.
[์ฌ๊ทธ ๋ฐฐ์ด ์์]
int [][]a = new int[3][];
a[0] = new int[3]{1, 2, 3};
a[1] = new int[2]{4, 5};
a[2] = new int[1]{6};
int [][]a = new int[][] {
new int[]{1, 2, 3},
new int[]{4, 5},
new int[]{6}
};
์ฐธ๊ณ ์๋ฃ
https://junesker.tistory.com/46
https://kingchobocoding.tistory.com/78
๋๊ธ๋จ๊ธฐ๊ธฐ