πŸ“ Language

    [C# 7.0] μƒˆλ‘œμš΄ κΈ°λŠ₯ (2) - νŠœν”Œ(Tuple), 둜컬 ν•¨μˆ˜(Local Function)

    C# 7.0의 μƒˆλ‘œμš΄ κΈ°λŠ₯ 2. νŠœν”Œ(Tuple) 이전 λ²„μ „μ—μ„œλŠ” λ©”μ„œλ“œμ—μ„œ ν•˜λ‚˜μ˜ κ°’λ§Œμ„ 리턴할 수 μžˆμ§€λ§Œ, C# 7.0μ—μ„œλŠ” νŠœν”Œμ„ μ‚¬μš©ν•˜μ—¬ λ©”μ„œλ“œλ‘œλΆ€ν„° 볡수 개의 값듀을 리턴할 수 있게 λ˜μ—ˆλ‹€. λ©”μ„œλ“œλ₯Ό μ •μ˜ν•  λ•Œ 리턴 νƒ€μž…μ΄ 볡수 κ°œμ΄λ―€λ‘œ νŠœν”Œ 리턴 νƒ€μž…(tuple return type) ν‘œν˜„μ„ μ‚¬μš©ν•˜κ²Œ λ˜λŠ”λ°, μ΄λŠ” κ΄„ν˜Έ ( ) μ•ˆμ— μ—¬λŸ¬ λ¦¬ν„΄νƒ€μž…λ“€μ„ μˆœμ„œλŒ€λ‘œ λ‚˜μ—΄ν•˜λ©΄ λœλ‹€. λ©”μ„œλ“œ μ•ˆμ—μ„œ μ‹€μ œ μ—¬λŸ¬ 값듀을 리턴할 λ•ŒλŠ” κ΄„ν˜Έ ( ) μ•ˆμ— 콀마둜 λΆ„λ¦¬ν•˜λŠ” νŠœν”Œ λ¦¬ν„°λŸ΄(tuple literal) ν‘œν˜„μ„ μ‚¬μš©ν•˜μ—¬ μˆœμ„œλŒ€λ‘œ λ¦¬ν„°λŸ΄ κ°’ ν˜Ήμ€ λ³€μˆ˜λ“€μ„ λ‚˜μ—΄ν•˜λ©΄ λœλ‹€. (int count, int sum, double average) Calculate(List data) // νŠœν”Œ 리턴 νƒ€μž…(tuple re..

    [C# 7.0] μƒˆλ‘œμš΄ κΈ°λŠ₯ (1) - νŒ¨ν„΄ 맀칭

    C# 7.0의 μƒˆλ‘œμš΄ κΈ°λŠ₯ νŒ¨ν„΄ 맀칭 νŠœν”Œ (Tuple) 둜컬 ν•¨μˆ˜ (Local Function) out νŒŒλΌλ―Έν„° 자릿수 λΆ„λ¦¬μžμ™€ 이진 λ¦¬ν„°λŸ΄ Deconstructor ref localκ³Ό ref return async μ»€μŠ€ν…€ 리턴 νƒ€μž… ν–₯μƒλœ Expression-bodied ν‘œν˜„ throw expression https://www.csharpstudy.com/Latest/CS7-new-features.aspx C# 7.0 μƒˆκΈ°λŠ₯ - C# ν”„λ‘œκ·Έλž˜λ° 배우기 (Learn C# Programming) λ³Έ μ›Ήμ‚¬μ΄νŠΈλŠ” κ΄‘κ³ λ₯Ό ν¬ν•¨ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κ΄‘κ³  ν΄λ¦­μ—μ„œ λ°œμƒν•˜λŠ” μˆ˜μ΅κΈˆμ€ λͺ¨λ‘ μ›Ήμ‚¬μ΄νŠΈ μ„œλ²„μ˜ μœ μ§€ 및 관리, 그리고 기술 μ½˜ν…μΈ  ν–₯상을 μœ„ν•΄ μ“°μ—¬μ§‘λ‹ˆλ‹€. www.csharpstudy.com 1. νŒ¨ν„΄(Patte..

    [C# 6.0] μƒˆλ‘œμš΄ κΈ°λŠ₯ (2) - λ¬Έμž₯ 레벨, 클래슀 멀버 레벨

    C# 6.0의 μƒˆλ‘œμš΄ κΈ°λŠ₯ 2. λ¬Έμž₯ 레벨 1) using static λ¬Έ static λ©”μ„œλ“œ(ν˜Ήμ€ 속성)λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” 클래슀λͺ….λ©”μ„œλ“œλͺ…(ν˜Ήμ€ 속성λͺ…)κ³Ό 같이 클래슀λͺ…을 λ°˜λ“œμ‹œ μ•žμ— 지정해 μ£Όμ–΄μ•Ό ν–ˆλ‹€. C# 6.0μ—μ„œλŠ” using static을 μ‚¬μš©ν•΄ 미리 지정해 μ€€λ‹€λ©΄, ν•΄λ‹Ή 파일 λ‚΄μ—μ„œλŠ” 클래슀λͺ… 없이 직접 μ‚¬μš©ν•  수 μžˆλ‹€. using static System.Console; namespace CS6 { class Program { static void Main(string[] args) { // Console. μƒλž΅ κ°€λŠ₯ WriteLine("csharpstudy.com"); } } } 2) catch/finally λΈ”λ‘μ—μ„œ await μ‚¬μš© C# 5.0μ—μ„œλŠ” awaitλ₯Ό catch/final..

    [C# 6.0] μƒˆλ‘œμš΄ κΈ°λŠ₯ (1) - ν‘œν˜„μ‹ 레벨

    [C# 6.0] μƒˆλ‘œμš΄ κΈ°λŠ₯ (1) - ν‘œν˜„μ‹ 레벨

    C# 6.0의 μƒˆλ‘œμš΄ κΈ°λŠ₯ ν‘œν˜„μ‹ 레벨 널 쑰건 μ—°μ‚°μž(Null-conditional operator) λ¬Έμžμ—΄ 보간(String Interpolation) Dictionary Initializer nameof μ—°μ‚°μž λ¬Έμž₯ 레벨 using static λ¬Έ catch/finally λΈ”λ‘μ—μ„œ await μ‚¬μš© Exception Filter 지원 클래슀 멀버 레벨 μžλ™ 속성 초기자(Auto Property Initializer) 읽기 μ „μš© μžλ™ 속성(Getter only) Expression-bodied member μ‚¬μš© https://www.csharpstudy.com/CS6/CSharp-6-new-features.aspx C# 6.0 μƒˆκΈ°λŠ₯ - C# ν”„λ‘œκ·Έλž˜λ° 배우기 (Learn C# Programming) ..

    [C#] Partial νƒ€μž…, Partial λ©”μ„œλ“œ

    1. Partial νƒ€μž… Partial νƒ€μž…μ€ 클래슀(Class), ꡬ쑰체(Struct), μΈν„°νŽ˜μ΄μŠ€(Interface)λ₯Ό μ—¬λŸ¬ νŒŒμΌμ— μ •μ˜ν•  수 있게 ν•œλ‹€. λ‹€λ₯Έ 파일둜 λΆ„ν• λ˜μ§€λ§Œ λ…Όλ¦¬μ μœΌλ‘œλŠ” ν•˜λ‚˜μ΄κΈ° λ•Œλ¬Έμ— 컴파일될 λ•Œ λΆ„ν• λœ 파일이 κ²°ν•©λœλ‹€. μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” Code Generatorκ°€ λ§Œλ“  μ½”λ“œμ™€ μ‚¬μš©μžκ°€ λ§Œλ“  μ½”λ“œλ₯Ό λΆ„λ¦¬ν•˜κΈ° μœ„ν•¨μ΄λ‹€. κ°œλ°œμžμ—κ²Œ 포컀슀 ν•΄μ•Ό ν•˜λŠ” μ½”λ“œλ₯Ό 뢄리해 μ€€λ‹€λŠ” μ μ—μ„œ 크게 도움이 λœλ‹€. 예λ₯Ό λ“€μ–΄, μœˆνΌμ—μ„œλŠ” Form UI λ””μžμΈκ³Ό κ΄€λ ¨λœ Form1.designer.cs 파일과 μ‚¬μš©μžκ°€ μ“°λŠ” Form1.cs νŒŒμΌμ— λ™μΌν•œ 클래슀λͺ…을 두고 이λ₯Ό partial둜 μ„ μ–Έν•˜λŠ”λ°, μ»΄νŒŒμΌλŸ¬λŠ” λ‚˜μ€‘μ— 이λ₯Ό 합쳐 ν•˜λ‚˜μ˜ 클래슀둜 λ§Œλ“ λ‹€. λ˜ν•œ, ASP.NET μ›Ή νΌμ—μ„œλŠ” ν•˜λ‚˜μ˜ μ›ΉνŽ˜μ΄..

    [C#] μΈλ±μ„œ(Indexer)

    μΈλ±μ„œ(Indexer) μΈλ±μ„œλŠ” 인덱슀([])λ₯Ό μ΄μš©ν•΄μ„œ 객체 λ‚΄μ˜ 데이터에 μ ‘κ·Όν•  수 있게 ν•΄μ£ΌλŠ” ν”„λ‘œνΌν‹°μ΄λ‹€. 마치 객체λ₯Ό λ°°μ—΄μ²˜λŸΌ μ‚¬μš©ν•  수 μžˆλ‹€. 1. κ΅¬ν˜„ νŠΉλ³„ν•œ 문법인 this []λ₯Ό μ¨μ„œ 클래슀 ν”„λ‘œνΌν‹°μ²˜λŸΌ getκ³Ό set을 μ •μ˜ν•œλ‹€. μž…λ ₯ νŒŒλΌλ―Έν„°μΈ μΈλ±μŠ€λŠ” μ—¬λŸ¬ 데이터 νƒ€μž…μœΌλ‘œ μ •μ˜ν•  수 μžˆλ‹€. 주둜 intλ‚˜ string νƒ€μž…μ„ μ‚¬μš©ν•œλ‹€. class ν΄λž˜μŠ€μ΄λ¦„ { ν•œμ •μž λ°˜ν™˜νƒ€μž… this[μž…λ ₯νƒ€μž… μž…λ ₯이름] { get { // λ‚΄λΆ€ 데이터 λ°˜ν™˜ } set { // λ‚΄λΆ€ 데이터 μ €μž₯ } } } 2. ν™œμš© 1) intν˜• 인덱슀둜 λ°°μ—΄ μ ‘κ·Ό class MyClass { private const int MAX = 10; private string name; private int[] data = ..