본문 바로가기

C#

(27)
[ 이것이 C#이다 ] Chapter 05 . 코드의 흐름 제어하기 [ 학습 흐름 ] [ 학습 흐름] 분기문 if , else 그리고 else if if 문 중첩해서 사용하기 switch 반복문 while do while for 중첩 for foreach for 또는 while을 이용한 무한 반복 코드 점프문 continue goto return 과 throw [ 분기문 ] [ 분기문 ] - 프로그램의 흐름을 조건에 따라 여러 갈래로 나누는 흐름 제어 구문 . - if문 switch문 두 종류가 있다 . [ if , else , else if ] - 한번에 단 하나의 조건을 평가한다 . using System; namespace AssignmentOperator; class MainApp { //프로그램 실행이 시작되는 곳 static void Main(string[] ..
[ 이것이 C#이다 ] Chapter 04 . 데이터를 가공하는 연산자 [ 학습 흐름 ] [ 학습 흐름] C#에서 제공하는 연산자 둘러보기 산술 연산자 증가 연산자와 감소 연산자 문자열 결합 연산자 관계 연산자 논리 연산자 조건 연산자 비트 연산자 할당 연산자 연산자의 우선순위 [ C#에서 제공하는 연산자 둘러보기 ] [ 연산자 ] 분류 연산자 산술 연산자 + , - , * , / , % 증가/감소 연산자 ++ , -- 관계 연산자 , == , != , = 논리 연산자 && , || , ! 조건 연산자 ? : null 조건부 연산자 ?. , ? [ ] 비트 연산자 > , & , | , ^ , ~ 할당 연산자 = , += , -= , *= , \= , &= , &= , |= , ^= , = null 병합 연산자 ?? - 대부분은 각각 특정 형식에 대해서만 사용 가능..
[ 이것이 C#이다 ] Chapter 03 . 데이터 보관하기 [ 학습 흐름 ] [ 학습 흐름] 다양한 데이터의 종류 변수 값 형식과 참조 형식 기본 데이터 형식 상수와 열거 형식 Nullable 형식 var 공용 형식 시스템 문자열 다루기 [ 다양한 데이터의 종류 ] [ 데이터 형식 ] 데이터 형식 - C#이 제공하는 다양한 데이터 형식은 기본데이터 형식,상수,열거형식등이 근간이 된다 . 복합 데이터 형식 - 기본 데이터 형식을 부품 삼아 구성됨 . - 구조체, 클래스, 배열등이 있다 . 값 형식 - 참조 형식 - 데이터 형식은 "기본 데이터 형식 / 복합 데이터 형식"으로 나눔과 동시에 "값 형식 / 참조 형식"으로 분류가 가능하다 . [ 변수 ] [ 변수 ] 변수 - 코드에서 보자면 "값을 대입시켜 변화시킬 수 있는 요소" - 메모리에서 보자면 "데이터를 담는..
[ 이것이 C#이다 ] Chapter 02 . 처음 만드는 C# 프로그램 [ 학습 흐름 ] [ 학습 흐름] Hello World ! 첫번째 프로그램 뜯어보기 using System; using static System.Console; namespace Hello {} class MainApp {} //프로그램 실행이 시작되는 곳 static void Main(string[]args){} if(args.Length==0){} CLR에 대하여 [ Hello, World! ] [ 간단한 프로그램 만들어보기 ] Visual Studio 실행하기 - 시작메뉴에서 Visual Studio 2022를 찾아 실행 새 프로젝트 만들기 - 새 프로젝트 만들기 - 콘솔앱 - 생성할 위치 지정 - "솔루션 및 프로젝트를 같은 디렉터리에 배치 / 최상위 문 사용 안함" 옵션 활성화후 생성 전역 us..
[ 이것이 C#이다 ] Chapter 01 . 프로그래밍을 시작합시다 [ 학습 흐름 ] [ 학습 흐름] 컴퓨터의 시작 , 프로그래밍의 시작 포트란의 시작 초등학생도 프로그래밍 할 수 있게 한 베이직 유닉스의,유닉스에 의한,유닉스를 위한 C C+1 == C++ 더 나은 세상을 위한 C# 비주얼 스튜디오 설치하기 [ 프로그래밍 언어의 역사 ] [ 1 . 컴퓨터의 시작 , 프로그래밍의 시작 ] 애니악 - 최초의 컴퓨터 - 애니악의 전기배선 작업은 일종의 프로그래밍 애드박 - 존 폰 노이만에 의해 탄생 - 중앙처리장치 / 기억장치 / 프로그램/ 데이터로 이루어진 슈퍼 컴퓨터 - 모든 현대 컴퓨터의 조상 어셈블리어 - 복잡한 기계어를 사람이 이해 할 수 있는 기호나 단어로 만든 것 ex)10001010 => Mov - 어셈블리어 ( 프로그래밍 언어 ) => [ 컴파일 By 컴파일러..
[ C# ]Conditional Attribute [ Conditional Attribute ] [ #if / #endif의 단점 ] => #if / #endif 로 묶는다면 메서드를 묶는다면 메서드 내용이 포함되지는 않지만 쓸데없는 메서드의 호출은 피할 수 없다 . 또한 코더의 실수를 유발하여 , 의도하지 않은 코드가 삽입 될 수 있다 . =>이러한 단점을 개선시킬 방법이 Conditional 어트리뷰트이다 . [ Conditional ] =>c#에서 사용 가능한 조건부 컴파일 기호이다 . Release 모드에서 메서드 내용이 컴파일 되지만 호출되지 않으며 , 메서드 전체에 대한 제어가 가능하다 . 그래서 #if/#endif보다 좋은 성능을 기대 할 수 있다 . =>단, void메서드에서만 가능하며 , 메서드 일부가 아닌 전체에만 지정이 가능하다 . ..
[ C# ] foreach 문을 돌리며 리스트 안에 객체를 삭제시 주의점 [ 주의점 ] [ 문제 상황 ] //곡의 점수는 있지만 MusicDataDic에는 없는 경우(해당 곡이 빠진 경우)를 확인 foreach (var musicData in totalScoreData.totalScoreDic.Keys) { if (SoundManager.instance.MusicDataDic.ContainsKey(musicData) == false) { Debug.Log("키는" + musicData); //해당 데이터를 지워준다. totalScoreData.totalScoreDic.Remove(musicData); } } =>문제의 메서드는 다음과 같다 . 아래와 같은 오류를 보여주었다 . [ 해결 ] =>이는 foeach 문을 돌리는 중 리스트 내부의 요소를 삭제하였기때문에 생긴 문제이다..
[c#] 배열을 딕셔너리로 만들고 인덱스에 따라 정렬하여 사용하기 //MusicData 배열을 Resources 폴더로 부터 가져와 datas 배열에 넣어준다 MusicData[] datas = Resources.LoadAll("MusicData"); _musicDataDic.Clear(); //_musicDataDic에 musicTitle을 키로 딕셔너리를 만들어준다 . _musicDataDic = datas.ToDictionary(ele => ele.musicTitle); //내부 요소중 인덱스를 사용하여 정렬한다. foreach (var music in _musicDataDic.OrderBy(ele => ele.Key)) { }