본문 바로가기
[C#] 프로퍼티(Property) / get, set 메서드 객체 지향 프로그램(OOP)에서 캡슐화(Encapsulation)는 객체의 필드와 메서드를 묶어, 실제 구현 내용 일부를 외부에 감추는 것을 의미한다.  c#에서도 클래스를 만들어 사용할 때 민감한 정보가 담긴 필드는 외부에서 함부로 읽고 쓰게 할 수 없게 하기 위해 은닉성 보장이 필요하다. 이를 위해 접근 제한자 private를 사용해 외부에서 접근하지 못하게 막아두는데, 이때 캡슐화된 필드를 메서드를 통해 부분적으로 외부에 들어나게 한다.public class Student1{ private string name; private int score; private void setName(string name) { this.name = name; } publi.. 2025. 1. 13.
[C#] 열거형 Enum 열거형 Enum열거형은 서로 관련 있는 상수들의 집합을 정의한 것 이다. 숫자에 특정한 명칭을 붙여주어 의미를 쉽게 이해할 수 있게 하는 용도로 사용된다. 예를 들어 프로그램에서 사과, 바나나, 오렌지의 세 과일을 사용하고 싶은데 각각 0, 1, 2라는 숫자를 부여한다면 나중에 1이 무엇을 의미하는지 이해하기 어려울 수 있다. // 0 == apple, 1 == banana, 2 == orangeint[] fruit = { 0, 1, 2 };  이럴 때 enum을 사용하면 보기 편한 코드를 작성할 수 있다.enum Fruit{ apple, // 0 banana, // 1 orange // 2}enum 사용법enum은 기본적으로 위에 Fruit 예시 처럼 enum 이름 { } 형태로 중.. 2024. 12. 16.
[C#] as, is 키워드 C#에서 형변환을 하기 위해서 캐스트 연산자를 사용한다. 캐스트 연산자 case 1.값을 변환할 때 사용되는 경우double d = 10.5;int i = (int)d;Console.WriteLine(d); // 10.5Console.WriteLine(i); // 10 캐스트 연산자 case 2.열거형에서 사용되는 경우enum City{ Seoul, Daejeon, Daegu, Busan}int busan = (int)City.Busan;Console.WriteLine(busan); // 3 캐스트 연산자 case 3.참조 형식의 형변환 경우private void button_click(object sender, EventArgs e){ MessageBox.Show((Butto.. 2024. 12. 12.
[C#] 연산자 오버로딩 (Operator Overloading) C#에는 연산자 오버로딩을 제공한다. 연산자 오버로딩이란?C#에서 제공하고 있는 연산자에 대해 기능을 다시 부여하는 것을 의미한다.기본 문법 형태는 public static [리턴속성] operator [연산자](매개변수1, 2) 이다. 예를 들어 이런 Person 이란 클래스가 있다고 가정을 할때 Person p1 = new Person();Person p2 = new Person();Console.WriteLine(p1 + p2); // Error 이런식으로 더하기를 하면 당연히 컴파일 오류가 발생할 것이다. 하지만 두 Person이 나이의 합을 반환하고 싶다면 어떻게 해야할까addPerson 이란 메서드를 만들어 addPerson(p1, p2) 이런식으로 사용 할 수 도 있지만두 사람의 나이가 아닌.. 2024. 12. 11.
[C#] ? 문법 (question mark) 다른 사람의 코드를 리뷰 하던 중 ? 가 사용되는 경우를 여럿 발견해서 한번 정리해 보았다. case1. 삼항연산자 ?대표적인 ? 문법으로 간단한 if else문을 한줄로 표현할 수 있다.조건식 ? 조건이 참인 경우 : 조건이 거짓인 경우;int i = 100;// i가 100 이상인 경우 1을 아니면 0을 반환int reuslt = i >= 100 ? 1 : 0;Console.WriteLine(reuslt); // 1 case2. type 뒤 ? (Nullable)변수를 선언할 때 타입에 따라 초기값이 지정 된다. 대표적으로 int는 0, string은 "" 이 초기값도 활용해야 할 경우 사용하면 좋은 문법이다. 해당 문법을 사용하지 않으면 기본적으로 변수에 null이 들어갈 수 없다.TYPE? 변수명.. 2024. 11. 28.