π Language
[C#] string κ°μ²΄ μ¬μ©μμ νν νλ μ€μ
string κ°μ²΄ μ¬μ©μμ νν νλ μ€μ ν λ©μλ μμ λ‘컬 λ³μλ€μ κ·Έ λ©μλκ° λλ λ ν΄μ νκ² λλ€. Value νμ μ λ³μλ ν¨μ 리ν΄κ³Ό λμμ μ€νμμ ν΄μ λκ³ , Reference νμ μ λ³μλ GCμ μν΄ νμμ μλ ν΄μ λλ€. μ¬κΈ°μ νν νλ μ€μ μ€ νλλ λ νΌλ°μ€ νμ μ κ°μ²΄λ₯Ό λΆνμνκ² λ무 λ§μ΄ λ§λλ κ²μ΄λ€. μλ₯Ό λ€μ΄ μλ μμ λ string κ°μ²΄λ₯Ό nκ° μ© κ³μ μμ±νκ³ μλ€. public string Get1ToN_Bad(int n) { string s = ""; for (int i = 1; i
[C# 8.0] μλ‘μ΄ κΈ°λ₯ (3) - using μ μΈ, λ λ³ν© ν λΉμ, ꡬ쑰체 μ½κΈ° μ μ© λ©€λ²
C# 8.0μ μλ‘μ΄ κΈ°λ₯ 5. using μ μΈ using μ μΈμ using λ€μ μλ λ³μκ° usingμ λλ¬μΌ λ²μλ₯Ό λ²μ΄λ κ²½μ° Dispose νλλ‘ μ»΄νμΌλ¬μκ² μ§μνκ² λλ€. Disposeλ λ©λͺ¨λ¦¬ κ΄λ¦¬λ₯Ό μν΄ μ¬μ©λλ©° λ μ΄μ μ΄ μ€λΈμ νΈλ₯Ό μ°μ§ μκ³ , κ΄λ ¨ 리μμ€λ₯Ό μ 리νλ€λ λ»μ΄λ€. λ©μλκ° λλ λ Disposeλ₯Ό μλ νΈμΆνλ€. private void GetDataCS8() { using var reader = new StreamReader("src.txt"); string data = reader.ReadToEnd(); Debug.WriteLine(data); // μ¬κΈ°μ Dispose() νΈμΆλ¨ } 6. λ λ³ν© ν λΉμ(Null Coalescing Assignment) νν NULL..
[C# 8.0] μλ‘μ΄ κΈ°λ₯ (2) - Nullable Reference Type, μΈλ±μ±κ³Ό μ¬λΌμ΄μ±
C# 8.0μ μλ‘μ΄ κΈ°λ₯ 3. Nullable Reference Type μ΄μ λ²μ μμλ reference νμ μ nullμ ν λΉν μ μμ΄ Null Reference Exceptionμ΄ μμ£Ό λ°μλκ³€ νλ€. κ·Έλμ C# 8.0μμλ reference νμ μ nullμ ν λΉνλ©΄ μ»΄νμΌλ¬κ° κ²½κ³ νλ κΈ°λ₯μ μΆκ°λμλ€. reference νμ μ κΈ°λ³Έμ μΌλ‘ nullμ λ£μ μ μλ Non-nullable Reference Typeμ΄ λκ³ , NULLμ νμ©νκΈ° μν΄μλ λ νΌλ°μ€ νμ λ€μ λ¬Όμν(?)λ₯Ό λΆμ¬ Nullable Reference Typeμμ νμν΄μΌ νλ€. Nullable Reference Type κΈ°λ₯μ λν΄νΈλ‘ Disable λμ΄ μμΌλ©° μ¬μ©νκΈ° μν΄μλ νλ‘μ νΈ λ 벨μ΄λ νμΌ λ 벨, νΉμ μ..
[C# 8.0] μλ‘μ΄ κΈ°λ₯ (1) - λν΄νΈ μΈν°νμ΄μ€ λ©€λ², ν¨ν΄ 맀μΉ
C# 8.0μ μλ‘μ΄ κΈ°λ₯ λν΄νΈ μΈν°νμ΄μ€ λ©€λ²(Default Inteface Members) ν¨ν΄ λ§€μΉ Nullable Reference Type μΈλ±μ±κ³Ό μ¬λΌμ΄μ± λΉλκΈ° μ€νΈλ¦Ό using μ μΈ λ λ³ν© ν λΉμ ꡬ쑰체 μ½κΈ° μ μ© λ©€λ² μ μ λ‘컬 ν¨μ λ¬Έμμ΄ λ³΄κ° ν ν°κ³Ό @ ν ν° μμ Unmanaged constructed type https://www.csharpstudy.com/Latest/CS8-def-itf-mem.aspx C# 8 λν΄νΈ μΈν°νμ΄μ€ λ©€λ² - C# νλ‘κ·Έλλ° λ°°μ°κΈ° (Learn C# Programming) C# 8 : λν΄νΈ μΈν°νμ΄μ€ λ©€λ² κ΅¬ν (Default Inteface Members) μ§κΈκΉμ§ (C# 8.0 μ΄μ ) C#μμ μΈν°νμ΄μ€λ₯Ό νλ² λ°°ν¬ν ν, κ·Έ μΈν°νμ΄μ€λ₯Ό ..
[C# 7.0] μλ‘μ΄ κΈ°λ₯ (4) - μ’ λ£μ(Deconstructor), ref local, ref return
C# 7.0μ μλ‘μ΄ κΈ°λ₯ 6. μ’ λ£μ(Deconstructor) μ’ λ£μ(Deconstructor)λ μμ±μ(Constructor)μ λμΉμ μΈ κ°λ μ΄μ§λ§ νκ΄΄μ(Destructor)μλ λ€λ₯΄λ€. μμ±μλ λ³΄ν΅ μΈλΆμμ μ λ ₯ νλΌλ―Έν°λ₯Ό λ°μλ€μ¬ μ΄λ₯Ό νλμ μ μ₯νλ μν μ νλ€. μ’ λ£μλ νλμ κ°λ€μ μΈλΆλ‘ μ λ¬νλ μν μ νλ€. νκ΄΄μλ λΆνμν 리μμ€λ₯Ό μ κ±°νλ μν μ νλ€. namespace ConsoleApp1 { class Program { static void Main(string[] args) { BasicInfo person = new BasicInfo(1, "Lee", 10); var (id, name, age) = person; WriteLine($"{id} - {name}"); } }..
[C# 7.0] μλ‘μ΄ κΈ°λ₯ (3) - out νλΌλ―Έν°, 리ν°λ΄ νν
C# 7.0μ μλ‘μ΄ κΈ°λ₯ 4. out νλΌλ―Έν° μ΄μ λ²μ μμλ λ©μλ νΈμΆ μ out νλΌλ―Έν°λ₯Ό μ¬μ©ν λ 미리 μ μΈ ν μ¬μ©ν΄μΌ νλ€. μ΄λ ν¨μλ₯Ό νΈμΆνλ λ¬Έμ₯ λ°μ λ³μλ₯Ό μ μΈν¨μΌλ‘μ¨ λ³μκ° μ¬μ©λλ λ²μλ₯Ό λͺ μμ μΌλ‘ μ§μ νλ μ΄μ λ μμλ€. ν° λ¬Έμ λ μλμ§λ§ λ²κ±°λ‘κ² λκ»΄μ§ λκ° μλ€. C# 7.0μμλ λ©μλ νΈμΆ μ νλΌλ―Έν° νμ μ outκ³Ό ν¨κ» μ§μ ν μ μλλ‘ νμλ€. μ΄λ κ² μ§μ λ νλΌλ―Έν°λ μμ μ λλ¬μΌ λΈλ‘ λ΄μμλ§ μ¬μ© κ°λ₯νλ€. void Test() { // μ΄μ λ°©μ //int x, y; //GetXY(out x, out y); // out νλΌλ―Έν° GetXY(out int x, out int y); Console.WriteLine($"{x},{y}"); } out νλΌλ―Έν° ..