본문 바로가기
728x90
반응형

분류 전체보기295

C#] Class Variable, Class Reference, Class Instance의 차이점 1. Variable of a Class : 초기화 되지 않은 class의 copy 2. Instance of a Class : new keyword를 사용하여 초기화된 class, 메모리를 갖고 있고 다른 instance와 메모리 공유하지 않는다. 3. Reference of a Class : 존재하는 instance를 사용하여 초기화된 class의 copy, memory 공간이 없으며, 동일한 instance의 메모리를 공유한다. Class란? 간단히 말해서, C#의 사용자 정의 타입이다. string을 data type이라고 하지만, string data type은 C#에 class로 만들어져있다. 미리 정의된 class 또는 사용자정의 class 모두 data types이다. 우리는 class를 .. 2024. 1. 31.
C#] SOLID 원칙 3. Liskov Substitution Principle(리스코프 치환 원칙) Liskov Substitution Principle (LSP)은 child class는 parent class를 대체할 수 있어야 한다. 이 말은, 기능 변경 없이 상속받은 class는 base class를 대체할 수 있도록 만들어야 한다. 그렇지 않으면, application은 결국 오류가 날 수 있다. 명확한 이해를 위해, 합계 계산기 예를 사용해보자. Project 설정 수들을 갖는 array가 있고, array의 모든 수를 합하는 기본기능이 있다. 이제, 홀수 또는 짝수만 더하는 기능이 필요하다고 하자. 어떻게 구현할 수 있는가? public class SumCalculator { protected readonly int[] _numbers; public SumCalculator(int[] nu.. 2024. 1. 26.
C#] SOLID 원칙 1. Single Responsibility Principle (SRP 원칙) project 개발 시, 우리는 유지보수가 용이하고 가독성있는 코드를 작성하려고 한다. 이를 위해서, 모든 class들은 각자 임무가 있어야 하고 잘 동작해야 한다. class가 하나 이상의 임무를 갖지 않는 것은 매우 중요하다. 그렇지 않으면 유지보수가 어려워진다. SRP를 위반하는 코드 작성 뒤, 리팩토링 해보자. Console Project 생성 간단한 model class를 만들자. public class WorkReportEntry { public string ProjectCode { get; set; } public string ProjectName { get; set; } public int SpentHours { get; set; } } project를 다루는 class를 추가하자. pub.. 2024. 1. 26.
C#] SOLID 원칙 2. Open Closed Principle (OCP 원칙) Open Closed Principle (OCP)는 software entities (classes 또는 methods)는 extension에 open되고 modification에 closed해야 한다는 원칙이다. 기본적으로, 코드가 변경이 필요하지 않도록 작성하려고 한다. 추가 고객 요청을 처리하기 위해 class를 수정하는 것이 아닌, class의 동작을 확장할 수 있다. 두 예를 통해서 OCP에 맞게 코드를 작성하는 방법을 살펴보자. 처음엔 OCP를 따르지 않게 작성하고, 이후에 OCP에 맞게 리팩토링하자. 월급 계산기 예 한 회사의 모든 개발자 월급의 총합을 계산하는 일을 해야한다. 우선, model class를 생성한다. public class DeveloperReport { public int.. 2024. 1. 23.
C#] Virtual Method virtual method의 정의, 구현방법, 사용, 장단점에 대해 살펴보자. Virtual method란? object-oriented programming의 기존 개념이다. derived class에서 동일한 signature의 method로 override되는 것을 허용한다. overriding은 선택사항이며, derived class는 base class의 기능을 그대로 사용할 수 있다. Method는 기본으로 non-virtual하며, override될 수 없다. method의 return type앞에 virtual 키워드를 추가하므로 virtual method로 선언할 수 있다. virtual은 return type을 갖을 수도 없을 수도 있다. public virtual double Calc.. 2024. 1. 23.
C#] const vs readonly 차이점 C#에서 const와 readonly는 immutable values를 선언할 수 있게 한다. Const const선언은 소스코드에만 존재하고, compiled output에는 없다. const reference는 실제 값으로 대체된다. const property와 몇가지 예를 살펴보자. Access Modifiers와 Types string과 bool, int, float과 같은 primitive type, enum. public class CircleCalculator { public const double E = 2.71; private const double Pi = 3.14; public double GetCircumference(double radius) => 2 * Pi * radius; p.. 2024. 1. 19.
728x90
반응형