๐Ÿง ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ

์˜ค๋Š˜์€ ๋ฐœ์ œ๋ฅผ ๋งˆ์ณค๊ณ , ์ƒˆ๋กœ C# ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•œ๋‹ค!

์ƒˆ๋กœ์šด ํŒ€๋„ ๋งŒ๋“ค์–ด์กŒ๋‹ค.

์•„์ง์€ ์–ด์ƒ‰ํ•˜์ง€๋งŒ, ๋‚˜์ค‘์—๋Š” ์นœํ•ด์ ธ์žˆ๊ฒ ์ง€!

์กฐ์˜ ์•„์ด์ฝ˜๋„ ๋‚ด๊ฐ€ ๋งŒ๋“ค์–ด๋ดค๋‹ค :)

์กฐ์˜ ์ด๋ฆ„์€ ํŒ”์ƒ‰์กฐ๋‹ค.

์šฐ๋ฆฌ ์กฐ๊ฐ€ ๋‹ค๋ฅธ ์กฐ๋ณด๋‹ค ์ธ์›์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ํŒ”์ƒ‰์กฐ + 8์กฐ๋‹ˆ๊นŒ!


๐Ÿง ์˜ค๋Š˜ ๋ฐฐ์šด ๊ฒƒ

1์ฃผ์ฐจ

  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ณธ ์š”์†Œ
  • ๋ณ€์ˆ˜์™€ ์ž๋ฃŒํ˜•
  • ์—ฐ์‚ฐ์ž์™€ ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ
  • ๊ณผ์ œ

๐Ÿง ๊ธฐ์–ตํ•  ๊ฒƒ

1์ฃผ์ฐจ

Garbage - Collection

CLR(Common Language Runtime)์—์„œ GC(Garbage Collection)๋Š” ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์ž ์—ญํ• .

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฐ ํ•ด์ œ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.

์žฅ์ 
1. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
2. ๊ด€๋ฆฌ๋˜๋Š” ํž™์— ํšจ์œจ์ ์œผ๋กœ ๊ฐœ์ฒด๋ฅผ ํ• ๋‹น.
3. ๋” ์ด์ƒ ์‚ฌ์šฉ ๋˜์ง€ ์•Š๋Š” ๊ฐœ์ฒด ํšŒ์ˆ˜, ํšŒ์ˆ˜๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋น„์›Œ ํ• ๋‹น์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋‹ค์Œ์— ๋”ฐ๋กœ ํฌ์ŠคํŒ… ํ•  ์˜ˆ์ •!

.NET๊ณผ C#์˜ ๊ด€๊ณ„

.NET๊ณผ C#์˜ ์—ฐ๊ด€์„ฑ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ํ†ตํ•ด ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค!
https://velog.io/@paenge1004/TIL-C-%EC%B6%94%EA%B0%80-%ED%95%99%EC%8A%B5-day-4#c%EA%B3%BC-net%EC%9D%98-%EC%97%B0%EA%B4%80%EC%84%B1


Using ์—†๋Š” ์ด์œ ?

Visual Studio์—์„œ๋Š” C#์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Using์„ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค.

์ฝ”๋“œ์—๋Š” ์•ˆ๋ณด์ด์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ์กด์žฌ!



์ฝ”๋“œ ์ปจ๋ฒค์…˜(Code Convention)

ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ, ๋งŽ์ด์“ฐ๋Š” ๋ช…๋ช…๋ฒ•์„ ์•Œ๊ฒŒ ๋๋‹ค.

ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ๋Š” ํŒŒ์Šค์นผ์ผ€์ด์Šค(Pascal Case), ๋ณ€์ˆ˜๋ช…์€ _์นด๋ฉœ ์ผ€์ด์Šค(camel Case)๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

์ค‘๊ด„ํ˜ธ๋Š” ํ•ญ์ƒ ์ƒˆ๋กœ์šด ์ค„์ด ํŽธํ•œ๋ฐ, ๋‹ค๋ฅธ ์Šคํƒ€์ผ๋„ ๋ดค๋‹ค.

e.g.,

public void Start()
{
	int _stageNum;
}

// ๋‹ค๋ฅธ ์Šคํƒ€์ผ
public void Start(){ int _stageNum; }

e.g.,

public void Start()
{
	
}

private void Score()
{
	int _highScore;
    string _name;
    bool _isClearStage;
}

๋ช…์‹œ์  ๋ฐ ์•”์‹œ์  ํ˜•๋ณ€ํ™˜

ํ˜•๋ณ€ํ™˜

https://velog.io/@paenge1004/TIL-C-%EA%B8%B0%EC%B4%88-%ED%98%95%EB%B3%80%ED%99%98Cascating

  • ๋ช…์‹œ์ 
int num1 = 10;
long num2 = (long)num1; // int๋ฅผ long๋กœ ๋ช…์‹œ์  ํ˜•๋ณ€ํ™˜ num1์ด ๊ฐ€์ง€๊ณ  ์žˆ๋˜ 10์ด ์ด ์ˆœ๊ฐ„๋งŒ long์œผ๋กœ ๋ณ€ํ™˜์ฒ˜๋ฆฌ
  • ์•”์‹œ์  (์ž๋™)
  1. ์ž‘์€ ๋ฐ์ดํ„ฐํƒ€์ž…-> ํฐ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋Œ€์ž…
byte num1 = 10;
int num2 = num1; // byte -> int
  1. ๋ฆฌํ„ฐ๋Ÿด ๊ฐ’ ๋Œ€์ž…๋˜๋Š” ๊ฒฝ์šฐ

C#์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋ฆฌํ„ฐ๋Ÿด๊ฐ’์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ํŒ๋ณ„ํ•˜์—ฌ ๋ณ€์ˆ˜์— ์•”์‹œ์  ํ˜•๋ณ€ํ™˜

float result = 1; // 1์€ int, float์œผ๋กœ ์•”์‹œ์  ํ˜•๋ณ€ํ™˜
  1. ์ •์ˆ˜ํ˜• -> ๋ถ€๋™์†Œ์ˆ˜์ ํ˜• ๊ฐ„ ์—ฐ์‚ฐ
int num1 = 10;
float num2 = 3.14f;
float result = num1 + num2; // ํฐ ํ˜•ํƒœ๋ฅผ ๋”ฐ๋ผ๊ฐ. 

var์€ ์™œ ๋งค์งํ‚ค์›Œ๋“œ?

์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ฐ’์— ๋งž์ถฐ์„œ ์ž๋ฃŒํ˜•์„ ๋งŒ๋“ค์–ด์คŒ!

var num = 10; // int ์ž๋ฃŒํ˜•
var name = "Munch"; // string ์ž๋ฃŒํ˜•
var pi = 3.141592; // double ์ž๋ฃŒํ˜•

์—ฐ์‚ฐ์ž

https://velog.io/@paenge1004/TIL-C-%EA%B8%B0%EC%B4%88-%EC%98%A4%ED%8D%BC%EB%A0%88%EC%9D%B4%ED%84%B0


๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ

์ƒ์„ฑ

string str1 = "Hello, world" // ๋ฆฌํ„ฐ๋Ÿด ๋ฌธ์ž์—ด
string str2 = new string('H', 5); // ๋ฌธ์ž 'H'๋กœ 5๊ฐœ ๋ฌธ์ž์—ด ์ƒ์„ฑ

์—ฐ๊ฒฐ

string str1 = "์•ˆ๋…•ํ•˜์„ธ์š”";
string str2 = "world";
string str3 = str1 + " " + str2; // ์•ˆ๋…•ํ•˜์„ธ์š” world

๋ถ„ํ• 

string str = "Hello, World!";
string[] words = str.Split(','); // ,๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋ถ„ํ• 

๊ฒ€์ƒ‰

string str = "Hello, World!";
int inex = str.IndexOf("Wrold"); // str์—์„œ World์˜ ์ฒซ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ์•„ index๋ณ€์ˆ˜์— ์ €์žฅ

๋Œ€์ฒด

string str = "Hello, World!";
string newStr = str.Replace("World", "Universe"); // World ๋ฌธ์ž๋ฅผ Univer๋กœ ๋Œ€์ฒด

๋ณ€ํ™˜

string str = "123";
int num = int.Parse(str); // ๋ฌธ์ž -> ์ˆซ์ž
int num1 = 123;
string str1 = num.ToString(); // ์ˆซ์ž -> ๋ฌธ์ž

๋น„๊ต

string _str1 = "Hello";
string _str2 = "World";
bool _isEqual = _str1 == _str2

๋Œ€์†Œ ๋น„๊ต

string _str1 = "Apple";
string _str2 = "Banana";
int _compare = string.Compare(str1, str2); // 0๋ณด์ž ์ž‘์œผ๋ฉด str1<str2 0์ด๋ฉด str1 = str2 , 0๋ณด๋‹ค ํฌ๋ฉด str1>str2
// A๊ฐ€ B๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„ ๋†’๋‹ค.

๋ฌธ์ž์—ด ํฌ๋งทํŒ…

  • ํ˜•์‹ํ™”
string name = "John";
int age = 30;
string message = string.Format("My name is {0} and I'm {1} years old.", name, age);
  • ๋ณด๊ฐ„
string name = "John";
int age = 30;
string message = $"My name is {name} and I'm {age} years old.";

e.g.,
์กฐ๊ธˆ ๋‹ค๋ฅด๊ธด ํ•˜๋‹ค. ํ•˜์ง€๋งŒ ํ๋ฆ„๋งŒ ์ฐธ๊ณ !

  • ํ˜•์‹ํ™”
  • ๋ณด๊ฐ„

๐Ÿง Homeworks

1์ฃผ์ฐจ

1-3 ์˜จ๋„ ๋ณ€ํ™˜๊ธฐ

์ˆ˜์ • ์ „

Console.WriteLine("์˜จ๋„ ๋ณ€ํ™˜๊ธฐ");
            Console.Write("์„ญ์”จ ์˜จ๋„๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”. : ");
            string _celcius = Console.ReadLine();
            float _doubleCelcius = float.Parse(_celcius);
            float _fahrenheit = (_doubleCelcius * 9 / 5) + 32;

์ˆ˜์ • ํ›„

// 1-3 ์˜จ๋„ ๋ณ€ํ™˜๊ธฐ ๋งŒ๋“ค๊ธฐ
            Console.WriteLine("์˜จ๋„ ๋ณ€ํ™˜๊ธฐ");
            Console.Write("์„ญ์”จ ์˜จ๋„๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”. : ");
            float _celcius = float.Parse(Console.ReadLine());
            float _fahrenheit = (_celcius * 9 / 5) + 32;

            Console.WriteLine("๋ณ€ํ™˜๋œ ํ™”์”จ ์˜จ๋„ : " + _fahrenheit);

1-4 BMI ๊ณ„์‚ฐ๊ธฐ

์ˆ˜์ • ์ „

Console.WriteLine("BMI ๊ณ„์‚ฐ๊ธฐ");

            Console.Write("๋‹น์‹ ์˜ ํ‚ค๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”. (์†Œ์ˆซ์  2์ž๋ฆฌ ๊นŒ์ง€ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.) (๋‹จ์œ„ : cm) : ");
            string _height = Console.ReadLine();
            Console.Write("๋‹น์‹ ์˜ ๋ชธ๋ฌด๊ฒŒ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”. (์†Œ์ˆซ์  2์ž๋ฆฌ ๊นŒ์ง€ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.) (๋‹จ์œ„ : kg) :");
            string _weight = Console.ReadLine();

            float _floatHeight = float.Parse(_height);
            float _floatWeight = float.Parse(_weight);

            float _bmi = _floatWeight / (_floatHeight / 100* 2);
            string _bmiResult = _bmi.ToString("F2");
            Console.WriteLine($"๋‹น์‹ ์˜ BMI ์ˆ˜์น˜๋Š” {_bmiResult} ์ž…๋‹ˆ๋‹ค.");

์ˆ˜์ • ํ›„

// 1-4 BMI ๊ณ„์‚ฐ๊ธฐ ๋งŒ๋“ค๊ธฐ
            Console.WriteLine("BMI ๊ณ„์‚ฐ๊ธฐ");

            Console.Write("๋‹น์‹ ์˜ ํ‚ค๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”. (์†Œ์ˆซ์  2์ž๋ฆฌ ๊นŒ์ง€ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.) (๋‹จ์œ„ : cm) : ");
            float _height = float.Parse(Console.ReadLine());
            Console.Write("๋‹น์‹ ์˜ ๋ชธ๋ฌด๊ฒŒ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”. (์†Œ์ˆซ์  2์ž๋ฆฌ ๊นŒ์ง€ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.) (๋‹จ์œ„ : kg) :");
            float _weight = float.Parse(Console.ReadLine());

            float _bmi = _weight / (_height / 100* 2);
            string _bmiResult = _bmi.ToString("F2");
            Console.WriteLine($"๋‹น์‹ ์˜ BMI ์ˆ˜์น˜๋Š” {_bmiResult} ์ž…๋‹ˆ๋‹ค.");

๊ตณ์ด float ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†์—ˆ๋‹ค.


๐Ÿง ์ˆ˜๊ฐ•ํ›„๊ธฐ

1์ฃผ์ฐจ ๊ฐ•์˜๋Š” ์–ด๋ ค์›€ ์—†์ด ์ž˜ ์ˆ˜๊ฐ•ํ–ˆ๋‹ค!

โœ” Reference

0๊ฐœ์˜ ๋Œ“๊ธ€