일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 튜토리얼
- unity
- 2판
- 리깅
- 유니티 그래픽스 최적화 스타트업
- 유니티
- 쉐이더
- Final IK
- NavMesh
- Effective C#
- 최적화
- c#
- error
- 익명 타입
- github
- 메모리
- 오류
- 쓰는 법
- 파이널 IK
- 유니티 그래픽 최적화
- shader
- 속성
- 에러
- 애님
- 프로퍼티
- 리팩토링
- 애니메이션
- 사용법
- 깃허브
- tutorial
- Today
- Total
목록책/C# (11)
참치김밥은 최고의 한식이다
타입을 public으로 만드는 것이 너무 쉬운 나머지 무조건적으로 public으로 선언하는 경우가 있다. 사실 상당수의 독립 클래스는 public 보다 internal로 선언하는 것이 낫다. 또한 가시성을 제한하기 위해서 기존 클래스 안에 protected나 private으로 중첩 클래스를 만드는 것도 좋은 방법이다. 이처럼 가시성을 제한하면 코드의 일부를 변경하였을 때, 시스템 전반에 걸쳐 수정해야 하는 부분이 적어진다. 외부에서 접근하는 코드가 적기 때문에 변경해야 할 코드의 내용이 적어지는 것은 어찌 보면 당연하다. 예시 코드 ↓ //수정 전 코드 public class PhoneValidator{ public bool ValidateNumber(PhoneNumber ph){ //... return..
선택적 매개변수가 있기 전에는 아래와 같이 일일이 오버로드를 구현해야 했다. void Person(string name); void Person(string name, int age); void Person(string name, int age, int gender); void Person(string name, int age, int genter, string address); ... 하지만 선택적 매개변수 기능을 통해 아래와 같이 간결히 표현할 수 있게 되었다. void Person(string name = "", int age = 0, int gender = 0, string address = ""); 그리고 명명된 매개변수를 이용해서, 원하는 매개변수만 전달할 수 있다. Person(name : ..
변환 연산자(conversion operator)는 클래스 간 대체 가능성을 지원하기 위한 기능이다. 대체 가능성이란 하나의 클래스를 다른 클래스로 대체할 수 있음을 말한다. 클래스를 만들다 보면 어떤 변환은 자동으로 허용된다. 어떤 객체든 .NET 클래스 계층의 최상위 타입인 System.Object 타입으로 대체할 수 있는 것처럼, 클래스의 어떤 객체든 해당 클래스가 구현한 인터페이스, 그 인터페이스의 베이스 인터페이스 혹은 베이스 클래스로 대체가 가능하다. 하지만, 종종 대상 타입으로 완벽하게 변환을 수행하지 못할 경우 오류가 발생한다. 예를 들어, "대상 타입으로 변환된 객체의 상태를 변경하는 것"과 "변환되기 이전 객체의 상태를 변경하는 것"의 결과가 서로 다를 수 있다. 또는 변환 연산자가 임..
이 책의 Item 8장을 읽기 전, 알고 있으면 좋을 사전 지식 (직접 정리) 이름 기반 타이핑과 구조 기반 타이핑이 뭘까? 이름 기반 타이핑? : 객체 간의 타입 호환성을 확인할 때, 타입의 ‘이름’을 사용하는 것.\ 예를 들어, class MyClass{ … }는 ‘MyClass’라는 이름으로 식별되고, 클래스 내의 int myInt1, int myInt2 등은 각각 ‘myInt1’과 ‘myInt2’라는 이름을 통해 개별 멤버로 인식된다. (내 이해를 담은 예시로, 실제 개념과 차이가 있을 경우 알려주시면 감사하겠습니다.) 구조 기반 타이핑? : 이름 대신 형태를 확인하여 타입이 같은지 확인한다. 예를 들면, 두 개의 정수를 가지는 모든 튜플은 모두 같은 타입으로 간주되며, 모두 System.Valu..