250x250
Rainbow🌈Coder
My dev NoteπŸ“’
Rainbow🌈Coder
전체 방문자
였늘
μ–΄μ œ
  • λΆ„λ₯˜ 전체보기 (411)
    • 곡지사항 (0)
    • Debugger (10)
      • Visual Studio Debugger (1)
      • Chrome DevTools (3)
      • Visual Studio Code Debugger (4)
      • eclipse (1)
      • intelliJ (1)
    • OOP (2)
      • OOP (2)
    • TypeScript (54)
      • νƒ€μž…μŠ€ν¬λ¦½νŠΈ TypeScript (54)
    • Javascript (87)
      • Javascript (45)
      • Node.js (19)
      • React (5)
      • FE κ°œλ°œν™˜κ²½μ„€μ • (3)
      • React와 Node 같이 λ•Œλ €μž‘κΈ° (6)
      • next.js (2)
      • pixi.js (7)
    • λ§ˆν¬μ—… (23)
      • Html & Css (23)
    • C# (80)
      • C# (12)
      • 이것이 C#이닀 (68)
    • C++ (30)
      • c++ (27)
      • win api (3)
    • Unity (18)
      • Unity(기초) (8)
      • Unity(C#쀑급) (5)
      • μœ λ‹ˆν‹° 포톀(λ„€νŠΈμ›Œν¬) (4)
      • unity c# MyCode (1)
    • Java & Spring (29)
      • Java (11)
      • μŠ€ν”„λ§ (8)
      • Java Algorithm (9)
      • Javs Data Structures (1)
    • μžλ£Œκ΅¬μ‘°μ™€ μ•Œκ³ λ¦¬μ¦˜ (15)
      • 자료ꡬ쑰 (5)
      • μ•Œκ³ λ¦¬μ¦˜ (10)
    • ν˜•μƒκ΄€λ¦¬ (15)
      • Git (11)
      • μ†ŒμŠ€νŠΈλ¦¬ (3)
    • κ·Έλž˜ν”½μŠ€ (7)
      • WebGl (7)
    • AWS (3)
      • aws (3)
    • λ¦¬λˆ…μŠ€ (5)
      • λ¦¬λˆ…μŠ€ (5)
    • μ±… 리뷰 (13)
      • ν΄λ¦°μ½”λ“œ(책리뷰) (3)
      • μœ μ§€λ³΄μˆ˜κ°€λŠ₯ν•œμ½”λ”©μ˜κΈ°μˆ C#편(책리뷰) (1)
      • λ¦¬νŒ©ν† λ§(μžλ°”μŠ€ν¬λ¦½νŠΈνŒ) (9)
    • Server (2)
      • κ²Œμž„ μ„œλ²„(λ„€νŠΈμ›Œν¬, λ©€ν‹°μ“°λ ˆλ“œ,OS) (2)
    • 섀계, 아킀텍쳐 (4)
    • 파이썬 (5)
    • λ””μžμΈνŒ¨ν„΄ (2)
    • mocha (2)
    • Jest (1)
    • Spine (1)
    • 인곡지λŠ₯ (1)
      • ν˜Όμžκ³΅λΆ€ν•˜λŠ”λ¨Έμ‹ λŸ¬λ‹+λ”₯λŸ¬λ‹ (1)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝

곡지사항

인기 κΈ€

νƒœκ·Έ

  • γ…£γ„·
  • MySQL
  • μœ„μž„
  • μ»΄ν¬μ§€μ…˜

졜근 λŒ“κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
Rainbow🌈Coder

My dev NoteπŸ“’

C#/이것이 C#이닀

27. 읽기 μ „μš© ν•„λ“œ, readonly

2022. 2. 11. 15:41
728x90

λ³€μˆ˜λŠ” λ³€ν•˜λŠ” 데이터λ₯Ό λ‹΄μ§€λ§Œ,

μƒμˆ˜λŠ” λ³€μΉ˜ μ•ŠλŠ” 데이터λ₯Ό λ‹΄λŠ”λ‹€.

μƒμˆ˜λŠ” const ν‚€μ›Œλ“œλ₯Ό μ΄μš©ν•΄μ„œ μ„ μ–Έν•œλ‹€.

μ»΄νŒŒμΌλŸ¬λŠ” μƒμˆ˜μ— μ§€μ •λœ 값을 μ‹€ν–‰νŒŒμΌ μ•ˆμ— 기둝해둔닀.

μƒμˆ˜λŠ” ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜κΈ° μ „λΆ€ν„° 이미 μ •ν•΄μ Έ μžˆλ‹€.

 

그리고 ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ μ€‘μ—λŠ” μ ˆλŒ€ κ·Έ 값을 λ°”κΏ€ 수 μ—†λ‹€.

λ³€μˆ˜λŠ” 자유둭게 값을 λ³€κ²½ν•  수 μžˆλ‹€.

읽기 μ „μš© ν•„λ“œλŠ” μƒμˆ˜μ™€ λ³€μˆ˜ κ·Έ 쀑간 μ–΄λ”˜κ°€μ— μžˆλ‹€.

 

읽기 μ „μš© ν•„λ“œλŠ”, 읽기만 κ°€λŠ₯ν•œ ν•„λ“œλ₯Ό λ§ν•œλ‹€.

즉, ν΄λž˜μŠ€λ‚˜ ꡬ쑰체의 λ©€λ²„λ‘œλ§Œ μ‘΄μž¬ν•  수 있으며

μƒμ„±μž μ•ˆμ—μ„œ ν•œ 번 값을 μ§€μ •ν•˜λ©΄,

κ·Έ ν›„λ‘œλŠ” 값을 λ³€κ²½ν•  수 μ—†λŠ” 것이 νŠΉμ§•μ΄λ‹€.

 

 

 

컴파일 μ—λŸ¬ : 
였λ₯˜ CS0191 읽기 μ „μš© ν•„λ“œμ—λŠ” ν• λ‹Ήν•  수 μ—†μŠ΅λ‹ˆλ‹€.

단, ν•„λ“œκ°€ μ •μ˜λœ ν˜•μ‹μ˜ μƒμ„±μž λ˜λŠ” μ΄ˆκΈ°κ°’ μ „μš© setterλ‚˜ λ³€μˆ˜ μ΄λ‹ˆμ…œλΌμ΄μ €μ—μ„œλŠ” μ˜ˆμ™Έμž…λ‹ˆλ‹€. 

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;

namespace Overriding
{
    class Configuration
    {
        private readonly int min;
        private readonly int max;

        public Configuration(int v1, int v2)
        {
            min = v1;
            max = v2;
        }
        public void ChangeMax(int newMax)
        {
            max = newMax; //μ—¬κΈ°μ„œ 컴파일 μ—λŸ¬κ°€ λ°œμƒν•œλ‹€..
        }
    }

    class MainApp
    {
        static void Main(string[] args)
        {
            Configuration c = new Configuration(100,10);
        } 
    }
}

μ•„λž˜ μ½”λ“œμ—μ„œμ²˜λŸΌ 읽기 μ „μš© ν•„λ“œλŠ” μƒμ„±μž μ•ˆμ—μ„œλ§Œ μ΄ˆκΈ°ν™”κ°€ κ°€λŠ₯ν•˜λ‹€.

λ§Œμ•½ μƒμ„±μžκ°€ μ•„λ‹Œ λ‹€λ₯Έ λ©”μ†Œλ“œμ—μ„œ 읽기 μ „μš© ν•„λ“œλ₯Ό μˆ˜μ •ν•˜λ €λŠ” μ‹œλ„κ°€ λ°œμƒν•˜λ©΄ 컴파일 μ—λŸ¬κ°€ μΌμ–΄λ‚œλ‹€.

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;

namespace Overriding
{
    class Configuration
    {
        private readonly int min;
        private readonly int max;

        public Configuration(int v1, int v2)
        {
            min = v1;
            max = v2;
        }

    }

    class MainApp
    {
        static void Main(string[] args)
        {
            Configuration c = new Configuration(100,10);
        } 
    }
}
728x90

'C# > 이것이 C#이닀' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

29. λΆ„ν•  클래슀  (0) 2022.02.11
28. 쀑첩 클래슀  (0) 2022.02.11
26. μ˜€λ²„λΌμ΄λ”© λ΄‰μΈν•˜κΈ°  (0) 2022.02.11
25. μ˜€λ²„λΌμ΄λ”©κ³Ό λ‹€ν˜•μ„± virtual, override  (0) 2022.02.11
24. C# ν˜•μ‹ λ³€ν™˜ 연산을 μœ„ν•œ μ—°μ‚°μž, is와 as  (0) 2022.02.11
    'C#/이것이 C#이닀' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • 29. λΆ„ν•  클래슀
    • 28. 쀑첩 클래슀
    • 26. μ˜€λ²„λΌμ΄λ”© λ΄‰μΈν•˜κΈ°
    • 25. μ˜€λ²„λΌμ΄λ”©κ³Ό λ‹€ν˜•μ„± virtual, override
    Rainbow🌈Coder
    Rainbow🌈Coder
    λͺ°λΌλ„ 결ꡭ은 μ•„λŠ” 개발자, 그런 μ‚¬λžŒμ΄ 되기 μœ„ν•œ 맀일의 ν•œκ±ΈμŒ

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”