본문 바로가기
728x90
반응형

전체 글274

C#] Access Modifiers Access modifiers는 C# project에서 object와 object의 members의 접근성을 명시한다. encapsulation을 강화하고, 의도하지 않은 접근이나 변경으로부터 보호한다. 모든 C# types는 access modifiers를 갖는다. 명시되지 않은 경우 기본 access modifier가 지원된다. Access Modifiers Types private, public, protected, internal, 그리고 protected-internal, private-protected 와 같은 두 가지 조합이 있다. 각 access modifiers는 다른 수준의 접근성과 가시성을 제공하며, 우리는 이를 사용하여 object의 동작을 제어할 수 있다. Private Acces.. 2024. 2. 2.
C#] Virtual VS Abstract 함수 차이점 OOP는 상속을 사용한다. 효율적이고 정돈되 코드를 위해 class의 공통 함수를 사용한다. 함수에 대해서 C#은 두가지 별도의 접근방식을 사용한다. virual 과 abstract methods이다. 둘다 polymorphism이 가능하지만, 구현과 사용방법은 상당히 다르다. Virtual vs. Abstract 대중교통 사무실을 만들어보자. 사용자는 Car, Train, Plane 중에 선택할 수 있고 이동시간과 기본요금을 알 수 있다. 사용자의 옵션에 따라 대중교통 object를 초기화하는 CreateTransportMode() 함수를 갖는 TransportAgency class를 만들어보자. public enum TransportModeType { Car, Plane, Train } interna.. 2024. 2. 2.
C#] Value VS Reference Types C# data types 분류에 대해 살펴보자. value types과 reference types의 차이점도 살펴보자. C#은 strongly-typed 언어이다. 각 변수가 특정 type을 갖고 있고, 각 type은 value type 또는 reference type이 될 수 있다. Value Types 값 타입 변수는 데이터를 직접적으로 갖고 있고, System.ValueType으로부터 상속받은 struct keyword를 사용하여 지정된다. Numeric types bool, char types Date types 내장 값 타입을 제외하고, struct keyword를 사용해서 custom 값 타입을 정의할 수 있다. fields 또는 properties로 값 타입 또는 참조 타입을 가질 수 있다.. 2024. 2. 1.
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.
728x90
반응형