C#

36. μΈν°νμ΄μ€μ κΈ°λ³Έ ꡬν λ©μλ
λ κ±°μ(μ μ°) μ½λλ μ κ·Έλ μ΄λμ κ°λ³ν μ£Όμκ° νμνλ€. μ΄κΈ° λ²μ μ μ€κ³ν λ λμΉ λ©μλλ₯Ό μΈν°νμ΄μ€μ μμ νκ² μΆκ°ν μ μμκΉ? λ€μκ³Ό κ°μ΄ 무μμ ILoggerμ μ λ©μλλ₯Ό μΆκ°νλ€κ³ ν΄λ³΄μ... interface ILogger { void WriteLog(string message); void WriteError(string error); //μλ‘μ΄ λ©μλ μΆκ° } κ·Έ κ²°κ³Ό ILoggerλ₯Ό μμνλ λͺ¨λ ν΄λμ€μ λν΄ 'μΈν°νμ΄μ€ λ©€λ²λ₯Ό ꡬννμ§ μλλ€.'λ μλ¬κ° λ°μν κ²μ΄λ€. νμν΄λμ€λ μΈν°νμ΄μ€μ λͺ¨λ λ©μλλ₯Ό ꡬννλ κ²μ΄ κΈ°λ³Έ κ·μΉμ΄κΈ° λλ¬Έμ΄λ€. κΈ°λ³Έ ꡬν λ©μλλ μ΄λ° μν©μμ μκΈ΄νκ² μ¬μ©ν μ μλ€. μΈν°νμ΄μ€μ μλ‘μ΄ λ©μλλ₯Ό μΆκ°ν λ κΈ°λ³Έμ μΈ κ΅¬ν체λ₯Ό κ°λλ‘ ν΄μ κΈ°..

38. μΈν°νμ΄μ€ μμ 1, 2 볡μ΅
using System; using System.IO; namespace Interface { interface ILogger { void WriteLog(string message); } class ConsoleLogger : ILogger { public void WriteLog(string message) { Console.WriteLine("{0} {1}",DateTime.Now.ToLocalTime(),message); } } class ClimateMonitor { private ILogger logger; public ClimateMonitor(ILogger logger) { this.logger = logger; } public void start() { while(true) { Conso..
37. μΆμν΄λμ€ : μΈν°νμ΄μ€μ ν΄λμ€ μ¬μ΄
μΆμ ν΄λμ€λ "ꡬν"μ κ°μ§ μ μλ€. νμ§λ§ ν΄λμ€μ λ¬λ¦¬ μΈμ€ν΄μ€λ₯Ό κ°μ§ μ μλ€. νλ§λλ‘ μΆμ ν΄λμ€λ ꡬνμ κ°λ μΈμ€ν΄μ€λ λ§λ€μ§ λͺ»νλ€. κ·Έλ¦¬κ³ μΆμ λ©μλλ₯Ό κ°μ§ μ μλ€. (μΆμλ©μλλ μΆμν΄λμ€κ° μΈν°νμ΄μ€μ μν λ ν μ μκ² ν΄μ£Όλ μ₯μΉμ΄λ€. μλνλ©΄ ꡬνμ κ°μ§λ λͺ»νμ§λ§ νμ ν΄λμ€μμ λ°λμ ꡬννλλ‘ κ°μ νκΈ° λλ¬Έμ΄λ€. λ€μλ§ν΄ μΆμν΄λμ€λ₯Ό μμνλ ν΄λμ€λ€μ΄ λ°λμ μ΄ λ©μλλ₯Ό κ°κ³ μμ κ±°λλ 'μ½μ'μ΄λ€.) C# μ»΄νμΌλ¬λ μΆμ λ©μλκ° λ°λμ public, protected, internal, protected internal νμ μ μ€ νλλ‘ μμλ κ²μ κ°μνλ€. μ΄λ κ² νλ©΄ ν΄λμ€μ μ κ·Όμ± μμΉλ, μΈν°νμ΄μ€μ μ κ·Όμ± μμΉλ μ§μΌμ§ μ μλ€. μΆμ ν΄λμ€λ ab..
35. μΈν°νμ΄μ€ λ€μ€ μμ
ν΄λμ€λ μ¬λ¬ ν΄λμ€λ₯Ό νκΊΌλ²μ μμν μ μλ€.(μ£½μμ λ€μ΄μλͺ¬λ : λͺ¨νΈμ± λ°μ) μ΅μ‘°μ ν΄λμ€(Ridable)κ° λ κ°μ νμν΄λμ€(Car, Plane)λ‘λΆν° μμλ°κ³ , μ΄ λκ°μ νμ ν΄λμ€λ₯Ό λ€μ νλμ ν΄λμ€(MyVehicle)κ° μμνλ κ²μ λ§νλ€. μ¬κΈ°μ MyVehicleλ Carμ Ride()λ©μλλ₯Ό λ¬Όλ €λ°μμ§, Planeμ Ride()λ©μλλ₯Ό λ¬Όλ €λ°μμ§, λͺ¨νΈνλ€. public abstract class Ridable { public abstract void Ride(); } public class Car : Ridable { public void Run() { Console.WriteLine("λΆλ¦λΆλ¦"); } public override void Ride() { Run(); } }..
34. μΈν°νμ΄μ€λ₯Ό μμνλ μΈν°νμ΄μ€
String.Format λ©μλ (System) | Microsoft Docs (μ΄λ² νμ΄μ§ μμ μμ μ¬μ©ν String.Format λ©μλ!) String.Format λ©μλ (System) μ§μ λ νμμ λ°λΌ κ°μ²΄μ κ°μ λ¬Έμμ΄λ‘ λ³ννμ¬ λ€λ₯Έ λ¬Έμμ΄μ μ½μ ν©λλ€.Converts the value of objects to strings based on the formats specified and inserts them into another string. String.Format λ©μλλ₯Ό μ²μ μ¬ docs.microsoft.com μΈν°νμ΄μ€λ₯Ό μμν μ μλ κ²μ ν΄λμ€ λΏμ΄ μλλ€. ν΄λμ€, ꡬ쑰체λ λ¬Όλ‘ μ΄κ³ μΈν°νμ΄μ€λ μΈν°νμ΄μ€λ₯Ό μμν μ μλ€. κΈ°μ‘΄μ μΈν°νμ΄μ€μ μλ‘μ΄ κΈ°λ₯μ μΆκ°ν μΈ..

33. μΈν°νμ΄μ€(1)
https://youtu.be/8NhvqLl-o2A ν΄λμ€λ κ°μ²΄μ μ²μ¬μ§, μΈν°νμ΄μ€λ ν΄λμ€μ μ²μ¬μ§ μΈν°νμ΄μ€λ ν΄λμ€κ° ν΄μΌνλ νλ(μ¦, λ©μλ)μ κ²°μ μΈν°νμ΄μ€λ (κΈ°λ³Έμ μΌλ‘) λ©μλ ꡬνμ κ°μ§ μμ μΈν°νμ΄μ€λ νλλ₯Ό κ°μ§ μμ μΈν°νμ΄μ€λ μ½μμ΄λ€. μλνλ©΄ μΈν°νμ΄μ€λ₯Ό μμνλ μ€μ²΄ ν΄λμ€λ λ°λμ μΈν°νμ΄μ€μμ μ μΈλ λ©μλλ₯Ό λͺ¨λ ꡬνν΄μΌ νκΈ° λλ¬Έμ΄λ€. μ€μ²΄ ν΄λμ€κ° μ΄λ€ μΈν°νμ΄μ€μ νμ ν΄λμ€μΈμ§λ₯Ό μκ³ μλ€λ©΄ κ·Έ ν΄λμ€κ° μ΄λ€ public λ©μλλ₯Ό μ 곡νλμ§λ νμ ν μ μμ [κ·Έκ²μ΄ μ½μμ΄λκΉ....(λ루ν ν€)] 컀λ₯ν°λ λ λΆνμ μ°κ²°νλ μ€κ° λΆν μΈν°νμ΄μ€λ λ ν΄λμ€λ₯Ό μ΄μ΄μ£Όλ 컀λ₯ν° μΈν°νμ΄μ€λ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ νμΈ΅ λ κ°λ ₯νκ² λ§λ€μ΄μ£Όλ μμμ΄λ€. κ°μ²΄μ§ν₯..
μ΄κ²μ΄ C#μ΄λ€ 7μ₯ μ°μ΅λ¬Έμ μ°Έκ³
μ΄κ²μ΄ C#μ΄λ€(κ°μ ν) 7μ₯ μ°μ΅λ¬Έμ : λ€μ΄λ² λΈλ‘κ·Έ (naver.com)
32. νν
ννλ μ¬λ¬ νλλ₯Ό λ΄μ μ μλ ꡬ쑰체μ΄λ€. νμ§λ§ ννμ νμ μ΄λ¦μ΄ μλ€. κ·Έλμ ννμ μμ© νλ‘κ·Έλ¨ μ 체μμ μ¬μ©ν νμμ μ μΈν λκ° μλ, μ¦μμμ μ¬μ©ν λ³΅ν© λ°μ΄ν° νμμ μ μΈν λ μ ν©νλ€. ννμ ꡬ쑰체μ΄λ―λ‘ κ° νμμ΄λ€. κ° νμμ μμ±λ μ§μμ λ²μ΄λλ©΄ μ€νμμ μλ©ΈλκΈ° λλ¬Έμ νλ‘κ·Έλ¨μ μ₯κΈ°μ μΈ λΆλ΄μ μ£Όμ§ μλλ€λ μ₯μ μ΄ μλ€. using System; using System.Collections; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Console;..
νλ, λ©€λ², μ§μλ³μ, μ μ νλ, μ μ λ©μλ κ°λ μ 리
C# κ°λ μλ₯Ό 보λ€λ³΄λ νλ, λ©€λ², μ§μλ³μ, μ μ νλ, μ μ λ©μλ κ°λ μ ννμ΄μ§μ μ 리ν΄λμΌ μΆν νΌλμ΄ μκ² λ€ μΆμ΄μ μ΄λ κ² μ 리ν΄λλ€. νλλ ν΄λμ€ μμ μ μΈλ λ³μλ€μ μΌμ»«λλ€.(ν μμμ λ©λͺ¨λ¦¬λ₯Ό ν λΉ) λ©€λ²: νλμ λ©μλλ₯Ό λΉλ‘―νμ¬ νλ‘νΌν°, μ΄λ²€νΈ λ± ν΄λμ€ λ΄μ μ μΈλλ μμλ€μ μΌμ»«λλ€. μ§μ λ³μ: λ©μλ λ΄λΆμ μ μΈλ λ³μμ΄λ€(μ€ν μμμ λ©λͺ¨λ¦¬ ν λΉ) μ μ νλ : staticμΌλ‘ νμ νμ§ μμ νλλ μλμΌλ‘ μΈμ€ν΄μ€μ μμλλ©°, staticμΌλ‘ νμ ν νλλ ν΄λμ€μ μμλλ€. μ μ νλλ₯Ό λ§λ€μ΄μ μ»λ μ΄λ: staticμΌλ‘ μμν νλλ νλ‘κ·Έλ¨ μ 체μ κ±Έμ³ νλλ§ λ§λ€ μ μκ² λλ€. κ·Έλ¬λ―λ‘ νλ‘κ·Έλ¨ μ 체μ κ±Έμ³ κ³΅μ ν΄μΌ νλ λ³μκ° μλ€λ©΄ μ μ νλλ₯Ό μ΄μ©νλ©΄ ..
31. ꡬ쑰체, λ³κ²½ λΆκ°λ₯ ꡬ쑰체(readonly struct)
C# λ³΅ν© λ°μ΄ν° νμμλ ν΄λμ€ λ§κ³ λ ꡬ쑰체λΌλ κ²μ΄ μλ€. ꡬ쑰체λ ν΄λμ€μ μ¬μ΄μ§κ°μ―€ λκΈ° λλ¬Έμ νλμ λ©μλλ₯Ό κ°μ§ μ μλ λ± μλΉ λΆλΆ λΉμ·νλ€. struct ꡬ쑰체μ΄λ¦ { //νλ //ꡬ쑰체 } ꡬ쑰체λ₯Ό μ μΈνλ μ struct MyStruct { public int MyField1 public int MtField2 public void MyMethod() { //... } } ꡬ쑰체μ νλλ₯Ό publicμΌλ‘ μ μΈνλ€. ν΄λμ€μμλ μλμ±λλ¬Έμ λͺ¨λ νλλ₯Ό λ°λμ privateλ‘ μμ±νμλ€. λ¬Έλ²μ μΌλ‘λ κ΅¬μ‘°μ²΄κ° ν΄λμ€μ μ μ¬νκΈ°λ ν΄λ, μ‘΄μ¬ μ΄μ κ° λ€λ₯΄λ€. ν΄λμ€λ μ€μΈκ³μ κ°μ²΄λ₯Ό μΆμννλ €λλ° κ·Έ μ‘΄μ¬μ μ΄μ κ° μμ§λ§ ꡬ쑰체λ λ°μ΄ν°λ₯Ό λ΄κΈ° μν μλ£κ΅¬μ‘°λ‘ μ¬μ©λλ€. (λ°λΌμ κ΅³μ΄..