C#

[C#] κΈ°λ³Έ, λ³€μˆ˜ + var

쑰밈밍 2022. 9. 5. 17:44

πŸ’‘  C#은 컴파일과 μΈν„°ν”„λ¦¬ν„°μ˜ μž₯점을 λͺ¨λ‘ κ°–μΆ˜ ν•˜μ΄λΈŒλ¦¬λ“œ μ–Έμ–΄λ‹€.

 μ»΄νŒŒμΌλŸ¬ (compiler) : ν”„λ‘œκ·Έλž¨ μ†ŒμŠ€ μ½”λ“œλ₯Ό 컴퓨터 λ“± ν•˜λ“œμ›¨μ–΄κ°€ μ‹€ν–‰ν•  수 μžˆλŠ” 기계 μ½”λ“œλ‘œ λ³€ν™˜ν•˜λŠ” ν”„λ‘œκ·Έλž¨ 

 μ»΄νŒŒμΌ (compile) : λ³€ν™˜ν•˜λŠ” κ³Όμ •

  <-> 인터프리터 (interpreter) : λ”°λ‘œ 컴파일 과정을 κ±°μΉ˜μ§€ μ•Šκ³  μ†ŒμŠ€ μ½”λ“œλ₯Ό λ°”λ‘œ ν•΄μ„ν•΄μ„œ μ‹€ν–‰

 

πŸ’‘ C#

: λŒ€μ†Œλ¬Έμž ꡬ뢄 μ–Έμ–΄

: λ„€μž„μŠ€νŽ˜μ΄μŠ€, 클래슀, Main()둜 ꡬ성

 

πŸ’‘ ν”„λ‘œκ·Έλž¨ μž‘μ„± λ° μ‹€ν–‰ λ‹¨κ³„

.csνŒŒμΌμ„ μ»΄νŒŒμΌμ„ 거쳐 μ‹€ν–‰νŒŒμΌμΈ .exe둜 λ§Œλ“ λ‹€.

❗ μœˆλ„κ°€ μ•„λ‹Œ λ‹€λ₯Έ ν™˜κ²½μ΄λΌλ©΄ DLL파일이 μƒμ„±λœλ‹€.

 

πŸ’‘ μ£Όμš” μ΄μŠ€μΌ€μ΄ν”„ μ‹œν€€μŠ€

❗ ν‚€λ³΄λ“œμ— μ—†λŠ” 특수 문자 μž…λ ₯

: ν•œκΈ€ μžμŒμ„ μž…λ ₯ν•˜κ³  ν•œμžλ₯Ό λˆ„λ₯΄λ©΄ 각 ν•œκΈ€ μžμŒμ— ν•΄λ‹Ήν•˜λŠ” 특수 문자 λ¦¬μŠ€νŠΈκ°€ 좜λ ₯λœλ‹€.

 

πŸ’‘  자리 ν‘œμ‹œμž {0}, {1} ...

Console.WriteLine("{0}", "Hello");

=> {0} μžλ¦¬μ— Hello λ„˜κ²¨λ°›μ•„ 좜λ ₯

: 번호 μΈλ±μŠ€λŠ” 0λΆ€ν„° μ‹œμž‘

: 인덱슀의 μˆ˜μ™€ λ’€μ—μ„œ 지정할 λ‚΄μš©μ΄ μΌμΉ˜ν•΄μ•Ό ν•œλ‹€. 

❗ μΈλ±μŠ€λŠ” 인수 λͺ©λ‘μ˜ 크기보닀 μž‘μ•„μ•Ό ν•œλ‹€.

 

πŸ’‘ λ³€μˆ˜ : 데이터λ₯Ό μž„μ‹œλ‘œ μ €μž₯ν•΄ λ†“λŠ” 그릇

: λ°μ΄ν„°λŠ” 데이터 ν˜•μ‹(data type)에 따라 λ³€μˆ˜(variable)에 μ €μž₯λœλ‹€.

: μ²«κΈ€μžλŠ” λ°˜λ“œμ‹œ 문자둜! 숫자X

: 일반적으둜 μ†Œλ¬Έμžλ‘œ μ‹œμž‘

:  λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜λ©΄ λ³€μˆ˜ μ΄λ¦„μœΌλ‘œ λ©”λͺ¨λ¦¬ 곡간이 λ§Œλ“€μ–΄μ§€λŠ”λ°, μ²˜μŒμ—λŠ” μ“°λ ˆκΈ° 값이 μ €μž₯λ˜μ–΄ μžˆλ‹€.

-> λ©”λͺ¨λ¦¬ 곡간에 μ‹€μ œ μ‚¬μš©ν•  값을 μ €μž₯ν•˜λŠ” 것 ==  μ΄ˆκΈ°ν™”

❗ λ³€μˆ˜ 값을 μ‚¬μš©ν•˜λŠ” 것 == λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•œλ‹€.

using System;

class VariableNote
{
    static void Main()
    {
        int number;	    // λ³€μˆ˜ μ„ μ–Έ : 데이터 담을 그릇 μ™„μ„±, λ©”λͺ¨λ¦¬μ— μž„μ‹œ μ €μž₯곡간 생성
        number = 25;	       // κ°’ λŒ€μž…,ν• λ‹Ή
        Console.WriteLine(number); //λ³€μˆ˜μ— λ“€μ–΄ μžˆλŠ” κ°’ μ‚¬μš©ν•˜κΈ°(μ°Έμ‘°)
        
        int a = 7;	// λ³€μˆ˜ μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”
        
        int x,y,z;	// ν˜•μ‹μ΄ 같은 λ³€μˆ˜ μ—¬λŸ¬ 개 ν•œλ²ˆμ— μ„ μ–Έ
    }
}

데이터 ν˜•μ‹

 

πŸ’‘ λ¦¬ν„°λŸ΄ 

: 값을 λ³€μˆ˜μ— μ €μž₯ν•˜μ§€μ•Šκ³  ν•¨μˆ˜μ—μ„œ λ°”λ‘œ 좜λ ₯. 

: 값을 κ·ΈλŒ€λ‘œ μž…λ ₯ν•œ 것이 λ¦¬ν„°λŸ΄ -> λ¦¬ν„°λŸ΄μ„ λ³€μˆ˜μ— μ €μž₯ν•΄μ„œ μ‚¬μš©ν•œλ‹€.

using System;

class Litera
{
    static void Main()
    {
        Console.WriteLine(1234);      //μ •μˆ˜ λ¦¬ν„°λŸ΄
        Console.WriteLine(3.14F);     //μ‹€μˆ˜ λ¦¬ν„°λŸ΄
        Console.WriteLine('A');       //문자 λ¦¬ν„°λŸ΄
        Console.WriteLine("HELLO");   //λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄
    }
}

❗ μ΄μ§„μˆ˜ λ¦¬ν„°λŸ΄

: μ΄μ§„μˆ˜μ•žμ— 0B or 0bλ₯Ό 뢙인닀

ex) 0b0010 -> μ΄μ§„μˆ˜ 0010

: μ»΄ν“¨ν„°μ—μ„œλŠ” μžλ™μœΌλ‘œ μ‹­μ§„μˆ˜ λ‹¨μœ„λ‘œ μ²˜λ¦¬ν•œλ‹€.

Console.WriteLine(0b0010); -> 2 좜λ ₯λœλ‹€

 

❗ μ–Έλ”μŠ€μ½”μ–΄(_) 문자둜 숫자 ꡬ뢄 (가독성 Good)

: 1,000,000 같이 1_000_000으둜 μž‘μ„±ν•  수 μžˆλ‹€.

 

πŸ’‘ μƒμˆ˜ : λ³€ν•˜μ§€ μ•ŠλŠ” λ³€μˆ˜, 읽기 μ „μš© λ³€μˆ˜

: const λ°μ΄ν„°νƒ€μž… λ³€μˆ˜ -> ν•΄λ‹Ή λ³€μˆ˜λŠ” μƒμˆ˜ constant κ°€ λœλ‹€, 이 λ³€μˆ˜λ₯Ό μƒμˆ˜ or 지역(local) μƒμˆ˜λΌκ³  ν•œλ‹€.

❗ λ°˜λ“œμ‹œ μ„ μ–Έκ³Ό λ™μ‹œμ— νŠΉμ • κ°’μœΌλ‘œ μ΄ˆκΈ°ν™”ν•΄μ•Ό ν•œλ‹€.

❗ ν•œ 번 μƒμˆ˜λ‘œ μ„ μ–Έλœ λ³€μˆ˜λŠ” λ‹€μ‹œ 값을 λ°”κΏ€ 수 μ—†λ‹€.

using System;

class ConstantDemo
{
	static void Main(string[] args) 
    {
    	const int MAX = 100;	// μƒμˆ˜ : μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”
        Console.WriteLine("μ΅œλŒ“κ°’ : {0}", MAX);
    }
}

 

πŸ’‘  var ν‚€μ›Œλ“œ

: var λ³€μˆ˜λͺ… <- var을 μ‚¬μš©ν•¨μœΌλ‘œμ¨ μž…λ ₯λ˜λŠ” 값에 따라 μžλ™μœΌλ‘œ ν˜•μ‹μ΄ κ²°μ •λœλ‹€.

var num = 1234;
Console.WriteLine(num.GetType());  // System.Int32

var message = "Hello";
Console.WriteLine(message.GetType());   // System.String

❗ λ³€μˆ˜μ˜ κΈ°λ³Έκ°’ default둜 μ„€μ •ν•˜κΈ°

: default ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ C#μ—μ„œ 기본으둜 μ œκ³΅ν•˜λŠ” κ°’μœΌλ‘œ μ΄ˆκΈ°ν™”λœλ‹€.

ex) int a = default;

: 숫자 데이터 ν˜•μ‹ -> 0 , char -> \0, string -> null을 κΈ°λ³Έκ°’μœΌλ‘œ 가진닀.