2022. 1. 9. 02:01ㆍ개발일지/일요일마다 C#

- 프로그래밍 이론
- C# 이론
- Unity 이론
안녕하세요. 새해가 밝았군요.
여러분 모두 새해 복 많이 받으세요!
저번 시간까지는 제가 무엇을 배울 것인지
정리를 함과 동시에 C# 상식에 대해 살펴보았습니다.
C#의 기초지식 부분을 배웠다고 볼 수 있겠습니다.
- C# 기초지식
- C#과 다른 언어 차이점
- C# 활용하기
C# 이렇게 크게 3가지로 나눠 배울 예정입니다.
따라서 이번 시간에는 C#과 다른 언어 차이점과
C#을 활용하는 법에 대해 간략히 설명드릴까 합니다.
오늘은 C#을 본격적으로 활용해본다.
우리는 지난 시간 C#이 중간언어로
가상머신을 끼고 각 운영체제에 명령을 내린다는 것을 배웠습니다.
(IL2CPP도 가능)
그리고 빌드와 컴파일, 링크에 대해서도 배웠습니다.
Visual Studio는 빌드를 해주는 컴파일과 링크를 가지고 있다.
또한 코드를 작성하기 편리하고 MS의 모든 언어를 지원한다.
우리는 이제부터 Visual Studio를 통해
직접 코드를 작성해보는 연습을 할 것입니다.
그러기 위해서는 Visual Studio 내의 C# 구조를 알아야겠죠?
먼저 가장 상위 파일에는 .sln 파일이 있습니다.
솔루션 파일이라고 합니다.
다음으로는 여러개의 프로젝트 파일인 .csproj 파일이 있습니다.
프로젝트 파일 내부에는 프로그램 파일인 Program.cs 파일이 있습니다.공부를 하기에는 콘솔 앱(.NET Framework)에서 하는 것이 좋다.
콘솔 프로젝트는 윈도우 cmd 파일을 이용해 프로젝트로 코드를 간단히 작성하고 볼 수 있다.
또한 콘솔 프로젝트는 프로그램을 실행하면 program class의 main method를 실행하는 것이 원칙이다.
이렇게 새 프로젝트를 생성하면 아래 사진과 같은 구조가 나오게 된다.
위 사진에서 볼 수 있든이 Main method는 { }로 영역이 되어 있는 것을 확인할 수 있습니다.
앞으로 { }로 영역을 구분할 것이고 영역을 ~구문이라고 합니다.
영역의 끝은 } 로 끝납니다.
한편 문장의 끝은 ; 로 끝납니다.
C#에서는 대소문자를 구분하고 되도록 영어를 사용하도록 합시다.
지난 시간에 배운 데이터형 중
(데이터형은 정수, 실수, 논리형, 문자형, 문자열, 객체 또는 클래스, 문자형, 열거형)
생소한 것이 있다면 열거형입니다.
- 정수 : sbyte, short, int, long, byte, ushort, uint, ulong
- 실수 : float(System.single), double(System.Double), Decimal
- bool (논리형) – true/false
- string (문자열)
- class (객체)
- char (문자형)
- enum (열거형)
- struct (구조체) Array (배열) Interface (인터페이스) Delegate(델리게이트 또는 메소드 변수)
열거형은 숫자에 이름을 부여할 때 사용합니다.내부적으로 숫자로 취급하며 관리에 용이합니다.값을 넣지 않으면 첫 요소가 기본값입니다.아래와 같이 설정하여 내부적으로 숫자를 부여하는 것이 가능합니다.
public enum eFruit
{
Banana,
Grape
}
class Program
{
public static eFruit FruitCategory;
static void Main(string[] args)
{
console.WriteLine(FruitCategory); // '//'은 주석 처리를 의미함.
FruitCategory = eFruit.Banana;
console.WriteLine(FruitCategory); // console.WriteLine() 은 괄호를 출력하라는 뜻임.
FruitCategory = eFruit.Grape;
}
}
배열은 데이터의 집합체이다.
데이터 타입에 [ ] 를 더한 형태로 작성할 수 있습니다.
ex) float[ ]
ex) int[ ] numbers = new int[ ] {1,2,3,4,5}
int[ ] numbers = new int[5] {1,2,3,4,5}
이렇게 배열은 생성과 동시에 크기가 정해집니다.
배열에 있는 요소에 접근하기 위해서 [ ] 를 사용합니다.
[ ] 안에 숫자를 넣는 것입니다.
numbers[5] // ERROR!
위에서 정해진 배열 요소에 이렇게 접근하면 ERROR가 나오게 됩니다.
그 이유는 요소의 시작은 0부터 이기 때문입니다.
5를 불러오기 위해서는 4를 넣어주어야하는 것입니다.
Method는 객체가 가지고 있는 행동이다.
지난 시간 배웠던 Class(객체)에서
Class가 가진 행동을 Method라고 합니다.
Input과 Output이 존재하며
아무것도 안 하는 행동 역시 존재합니다.
(Void null)
이 때 Input으로 들어오는 변수를 Parameter 또는 Arguments이라고 합니다.
Parameter은 method에서 사용하는 변수를 말하며
Arguments는 method를 호출할 때 넣어주는 변수입니다.
헷갈리지 말도록 합니다.
접근 한정자는
private, public, protected, internal이 있다.
private는 구문 안에서만 사용이 가능하며
publiv은 구문 밖에서도 사용이 가능합니다.
protected는 상속받은 자식들에 한하여 사용이 가능합니다.
internal은 해당 프로젝트 안에서만 사용이 가능합니다.
여기서 어려운 부분은 바로 상속과 자식일 것입니다.
추후 다시 설명하겠습니다.
변수의 형태에는 여러가지가 있다.
맴버 변수 : class 구문 { } 안에 존재, class 소멸 시 삭제
지역 변수 : method 구문 { } 안에 존재, method 소멸 시 삭제
전역 변수 : static, 메모리에 항시 거주
(글 상단 사진에 한번 나왔었습니다.)
상수 : const, 빌드에 포함되며 치환합니다.
readonly 변수 : 프로그램 실행 시 혹은 클래스 생성 시 고정
연산자에도 여러가지가 있다.
산술 연산자 : +, -, *, /, %
생소한 것은 % 일 것입니다. 나머지 값을 의미합니다.
할당 연산자 : =
만약 나머지를 할당한다면 %= 로 사용할 수 있겠습니다.
증감 연산자 : ++, --
1씩 더하주고 1씩 빼줍니다.
논리 연산자 : &&, ||, !
차례대로 and, or, not을 의미합니다.
논리형이기 때문에 true, false를 반환합니다.
관계, 비교 연산자 : <, >, ==, !=, >=, <=
생소한 것은 == 일 것입니다.
앞서 살펴본 = 는 우측 값을 좌측에 할당한다는 뜻이었습니다.
그래서 == 의 경우는 같다는 의미로 예측할 수 있겠고 실제로도 그러합니다.
!=의 경우는 같지 않다라는 뜻입니다.
비트 연산자 : &, |, ^
해당 숫자를 2진수로 변경하여 연산합니다.
/*
10110(2)
10011(2)
&
---------------
10010(2)
16 8 4 2 1
1 0 1 1 0
16 0 4 2 0
= 22
16 8 4 2 1
1 0 0 1 1
16 0 0 2 1
= 19
16 8 4 2 1
1 0 0 1 0
16 0 0 2 0
= 18
22 & 19 = 18
*/
Shift 연산자 : <<, >> 해당 숫자를 N 비트 이동합니다.
ex) console.WriteLine(1 << 1); // 2 출력
조건 연산자 : ?, ??
?는 삼항 연산자라고도 부릅니다.
int a = (1 < 10) ? 1 : 0; // 1 할당
sizeof( ), typeof( ) 연산자 :
sizeof( )는 type의 크기를 byte 단위로 나타냅니다.
typeof( )는 타입을 정의하는 type 객체로 변환합니다.
(type 객체는 조금 어려우므로 C#에 능숙해졌을때 다시 공부하시는 것을 추천합니다.)
조건문과 반복문으로 코드를 짤 수 있다.
조건문에는 if, Swith-case 가 있습니다.
반복문에는 while, do-while, for, foreach 가 있습니다.
다음 글에서 이어 쓰도록 하겠습니다!
'개발일지 > 일요일마다 C#' 카테고리의 다른 글
3주차 C# 개발 공부 (0) | 2022.01.09 |
---|---|
1주차 C# 개발 공부 (0) | 2021.12.20 |