일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리팩토링
- 쉐이더
- 최적화
- 쓰는 법
- 2판
- 튜토리얼
- 속성
- github
- 유니티 그래픽 최적화
- 애니메이션
- Final IK
- 오류
- 프로퍼티
- 파이널 IK
- 에러
- Effective C#
- 애님
- 유니티 그래픽스 최적화 스타트업
- 오픈 월드
- 유니티
- 익명 타입
- 메모리
- 리깅
- unity
- shader
- tutorial
- c#
- error
- 깃허브
- 사용법
- Today
- Total
목록c# (14)
참치김밥은 최고의 한식이다
.NET은 기본적으로 모든 객체를 0으로 초기화한다. 따라서 0이 타입의 기본값이 되도록 설정하는 것이 좋다. 열거형(enum)은 좀 특별한 사례다. 열거형은 반드시 0을 유효한 값으로 선언해야 한다. 열거형 멤버를 선언하면, 그 값이 0으로 초기화되기 때문이다. public enum Planet{ Mercury = 1, Venus = 2, Earth = 3, Mars = 4, ... Neptune = 8 } Planet sphere = new Planet(); 위 코드는 0일 때를 구현해놓지 않았다. 즉, sphere의 값은 0으로 초기화되어 유효하지 않은 값을 지니게 된다. 따라서 열거형을 아래처럼 변경하는 것이 좋다. public enum Planet{ None = 0, Mercury = 1, Ve..
구조체(값 타입)는 데이터를 저장하고, 클래스(참조 타입)는 동작을 정의한다. 첫 번째 비교 아래 코드는 Employee가 Class가 될 때 문제가 생긴다. public struct Employee{ public string Position {get; set;} public decimal CurrentPayAmount {get; set;} public void Pay(BankAccount b) => b.Balance += CurrentPayAmount; } Employee e1 = Employees.Find(e => e.Position == "CEO"); BankAccount CEOBankAccount = new BankAccount(); decimal Bonus = 10000; e1.CurrentPa..
원자적으로 상태를 변경하는 타입과 변경 불가능한 타입 두 가지가 있다고 하자. ‘원자적’이란, 단일 개체라서 구성 필드 중 하나를 변경하면, 전체 콘텐츠도 그에 맞춰 변경해야함을 뜻한다. 예를 들어, 주소 타입은 원자적이라고 할 수 있다.가령, 주소에는 시, 구, 우편번호가 포함된다. 이때, 이미 완성된 주소 A에서 우편번호만 변경할 경우, 나머지 ‘시’와 ‘구’는 유효하지 않게 된다. 즉, 우편번호를 변경할 경우, 그에 맞추어 ‘시’와 ‘구’도 변경해야 한다. 이를 원자적 타입이라고 한다. 원자적 개체의 필드를 변경 가능하도록 구현하면, 멀티스레드 시스템을 돌리거나 예외가 발생했을 때 해당 개체가 유효하지 않은 상태로 사용될 수 있다. 아래 코드를 보자. public struct Address{ pri..
먼저, Item 2에서 말하는 암묵적 속성, 명시적 속성이 뭘까??? 아마 나처럼 속성(프로퍼티)이 뭔지만 아는 사람들을 위해 간략히 아래 예시를 준비했다. // 암묵적 속성. 구현부가 없다 public class Person{ public string FirstName {get; set;} public string LastName {get; set;} } // 명시적 속성. 구현부가 추가되었다 public class DerivedType : BaseType{ public override string Name{ get => base.Name; protected set{ if(!string.IsNullOrEmpty(value)) base.Name = value; } } } (일단 저는 이렇게 이해했는데, ..