목록코딩/C# (6)
공부일지
null 조건부 연산자 “?.”foo 객체가 null이 아니면 member 필드에 접근int? bar; bar = foo?.member; “?[]”객체의 멤버 접근이 아닌 배열 같은 컬렉션 객체 첨자를 이용한 참조에 사용.ArrayList a = new ArrayList(); a?.Add("야구"); a?.Add("축구"); WriteLine($"{a?[0]}"); WriteLine{$"{a?[1]}"}; null 병합 연산자 “??”두 개의 피연산자를 받아서 왼쪽 피연산자가 null이 아니면 그대로, null이면 오른쪽 피연산자를 반환int? a = null; Console.WriteLine(${a ?? 0}); a = 99; Console.WriteLine(${a ?? 0}); Reference[C#..
Switch문~~문과 ~~식의 차이패턴 매칭(Pattern Matching) Switch문 switch문과 패턴 매칭 중 형식 패턴 : 나중에 써먹어 볼 만할 듯object obj = 123; switch(obj) { case int: break; case float: break; default: break; } 케이스 가드(Case Guard) : switch문의 case 절 패턴을 구체적으로 만들어주는 추가 조건 검사“when”switch (obj) { case int: break; case float f when f >= 0: break; case float: break; default: break; } ~~문과 ~~식의 차이문 : 결과 반환과 무관하게 주어진 작업을 진행.식 : 결과값을 만들 수 ..
작성 목표데이터 구조와 자료형 개념의 구조화 스킵데이터의 종류 데이터 형식 : 기본 데이터 형식 + 복합 데이터 형식(구조체, 클래스, 배열 등등)복합 데이터 형식 → 오디오, 이미지 등등 표현 변수 : 데이터를 담는 메모리 어딘가에 존재하는 일정 크기의 공간프로그래머는 컴파일러에게 변수를 선언한다. 선언 동시 초기화 여러 변수 한번에 선언 : 동일 데이터 타입일 시 초기화(Initialization)최초의 데이터 할당.미입력 시 쓰레기 데이터 할당 → 소프트웨어가 예상치 못하게 동작.따라서 초기화하도록 C#이 칼들고 협박함.에러 메시지 + 실행 파일 미생성보통 0으로 초기화 리터럴(Literal : ‘말 그대로, 문자 그대로’)고정값을 나타내는 표기법int a = 100; (a : 변수, 100 : 리..
기본 데이터 형식 CPU 연산 장치ALU(Arithmetic Logic Unit) : 정수만 처리하는 장치FPU(Floating Point Unit) : 부동 소수점만 처리하는 장치따라서 CPU에게 데이터 종류에 따라 명령을 내려야 함.CPU는 데이터 타입 판단 능력 없음.컴파일러가 대리 업무 숫자 데이터 형식정수형 : 9가지왤케 많음?닭 잡는데 소 잡는 칼 쓸 수 없다고, 실제 사용되는 리터럴의 크기에 비해 과한 크기의 메모리 선언은 낭비이기 때문.추가로 char도 정수형1 바이트(byte) == 8비트(bit)바이트는 메모리의 주소나 CPU 처리하는 데이터의 단위. 예제 2진수, 10진수, 16진수 리터럴2진수 리터럴 : 0b 접두사byte a = 0b1111_0000;언더바(_)는 자릿수 구분자는 ..
스택이란 ‘업보 스택 쌓는다.’ 라는 말로서 적어도 나에게는 친숙한 스택이라는 자료구조. 오늘은 이 친구를 알아보자. 스택, 영어로 Stack은 위와 같이 어떠한 것들이 무더기로 쌓여 있는 것을 의미한다. 자료구조에서도 이와 유사한 역할을 진행한다. 스택의 구조 Stack을 배열로 어떻게 만들까? 배열 안에 아무 데이터도 없으니 현재 index는 -1로 설정! 스크립트로 구현해보자 초기 MyStack.cspublic class MyStack { private int[] arr; private int index; public int Size; public MyStack(int size) { Size = size; arr = new int[size]; index = -1; } //추가 public void ..
Q. 데이터 10을 저장하고 싶을 때 데이터 10이 어디에 저장되느냐? 맨앞? 맨끝?정답은 Random이다. 이렇게 메모리의 주소를 지목하여 데이터를 대입하는 과정을 우리는 변수에 데이터를 대입하며 익혀왔다. int x = 10; int y = x; x = 20; Console.WriteLine(y); //result : 10 person yeom = new person("염예찬", 32); person chad = yeom; yeom.age = 33; Console.WriteLine(chad.age); //result : 33정수형 변수의 경우각 데이터에게 서로 상호 무관한 자기의 방이 있음. 복사가 진행될 때 해당 방에서 내용물을 복사 시켜줌.Call by Value 클래스의 경우정확한 설명은 아니나..