2 ๋ถ„ ์†Œ์š”

C#์ด๋ž€?

C#์ด๋ž€, ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๊ฐœ๋ฐœํ•œ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ, java์˜ ๋Œ€ํ•ญ๋งˆ ์ •๋„๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
.netํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ•œ ๋ถ€๋ถ„์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ๊ณ , java์™€ ๋น„์Šทํ•œ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

C# ์ปดํŒŒ์ผ๋Ÿฌ์™€ ๊ฐœ๋ฐœ ๋„๊ตฌ๋“ค

  1. MicroSoft Visual C#: ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๊ฐ€ C#์— ๋Œ€ํ•ด ๋‚ด๋ฆฌ๋Š” ๋ชจ๋“  ํ‘œ์ค€ ์ •์˜๋ฅผ ๊ฐ€์žฅ ์ •ํ™•ํ•˜๊ณ  ์•ˆ์ •์ ์œผ๋กœ ๋ฐ˜์˜ํ•˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์ด๋‹ค.

  2. Rider: JetBrain์—์„œ ๊ฐœ๋ฐœํ•œ .net ์ „์šฉ IDE๋กœ, C# ํ”„๋กœ์ ํŠธ๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

  3. Borland: ์ฝ”๋“œ๊ธฐ์–ด RAD ์ŠคํŠœ๋””์˜ค ์•ˆ์—์„œ Delphi.net๊ณผ C#.net ๋‘ ๊ฐ€์ง€ ์–ธ์–ด๋กœ .net ์„ ์ง€์›ํ•œ๋‹ค.
  4. Mono
  5. DotCNU Project

.NET Framework๋ž€?

.NET Framework๋ž€ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๊ฐœ๋ฐœํ•œ ์œˆ๋„์šฐ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๋ฐ ์‹คํ–‰ ํ™˜๊ฒฝ์ด๋‹ค.
๋„คํŠธ์›Œํฌ ์ž‘์—…, ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ์˜ ๋งŽ์€ ์ž‘์—…์„ ์บก์Šํ™”ํ–ˆ๊ณ , ๊ณตํ†ต ์–ธ์–ด ๋Ÿฐํƒ€์ž„(CLR)์ด๋ผ๋Š” ์ด๋ฆ„์˜ ๊ฐ€์ƒ ๋จธ์‹  ์œ„์—์„œ ์ž‘๋™ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.

.NET Framework๋Š” 60๊ฐœ ์ด์ƒ์˜ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜์ง€๋งŒ ๋Œ€ํ‘œ์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์€ ์–ธ์–ด๋“ค์„ ์ง€์›ํ•œ๋‹ค.

  1. C#.NET
  2. VB.NET
  3. VC++.NET
  4. J#.NET
  5. F#.NET
  6. Jscript.NET

.NET Framework์—์„œ ์ง€์›ํ•˜๋Š” ๊ธฐ์ˆ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ASP.NET (Active Server Pages.NET)
  2. ADO.NET
  3. WCF
  4. WPF
  5. WWF
  6. AJAX (๋น„๋™๊ธฐ JavaScript ๋ฐ XML)
  7. 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

ํƒœ๊ทธ:

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ:

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ