나는 c++를 공부한 경험을 바탕으로 두 언어의 다른 부분을 중심적으로 공부하였다
입출력과 형변환 하는게 조금 번거롭고 헷갈리지만 익숙해지면 또 잘 사용할거 같다
1.입출력
Console.Read() //문자열을 제외한 입력 방법
Console.ReadLine() //문자열 입력 방법
Console.Write() //줄바꿈이 되지 않는 출력 방법
Console.WriteLine() //출력 이후 줄바꿈 되는 출력 방법
2.형변환
-문자->다른 자료형
string iStr = "10";
int x;
x = int.parse(iStr);
x = Convert.ToInt32(iStr);
parse(),Convert() 함수의 차이점은 parse()함수는 null값이 들어가면 에러가 발생하고, Convert() 함수는 0을 반환한다고 하니 null값이 들어가면 안될 때에는 parse()함수를 상관 없다면 Convert() 함수를 사용하면 되겠다
*형변환 시 주의사항
string iStr = "10xxx";
int x;
x = Convert.int32(iStr); // 에러발생 : 반환할 수 없는 값
10은 반환 가능하지만 xxx는 변환이 불가능 하므로 에러가 난다
해결방법
string bStr = "10xxx";
int x;
bool b;
bool isSuccess;
isSuccess = int.TryParse(bStr, out b);
이렇게 TryParse() 함수를 사용하여 변환이 가능한지 체크 해볼수 있다
변환가능한지 체크하는 것 외에도 입력값이 어떤 자료형인지 알 수 있어 꽤 유용한 함수라고 생각한다
3.배열
자료형[] 변수명 = new 자료형[] { 초기화 값 };
c++와 매우 유사하지만 []의 위치라던가 초기화를 하는 방법이 조금 다르다
또 c++와 다른 점은 자동으로 초기화가 된다는 점인데
c#은 내가 직접 초기화 값으을 지정해주지 않아도 만들어짐과 동시에 기본값으로 초기화 된다
int -> 0
string -> " "
bool -> false
아주 편리하다
*foreach 반복문
foreach(자료형 변수 in 배열이름) { }
c++의 범위 기반 for문이랑 같은 기능이지만 중간에 in이 들어가니까 뭔가 낮설게 느껴졌다
그래도 조건식 없는 for문이라는것은 변함없다
4.번외
다른 부분을 찾으면서 공부하다 보니 내가 찾은것 외에도 다른점이 있는지 찾아보았다
- c#은 메모리 관리를 자동으로 해준다
- 조건문에서 bool 타입만 참, 거짓을 판단할 수 있다 이유는 프로그래밍의 모호성을 제거하기 위해서
- 구조체는 값타입으로 취급하고, 클래스는 참조타입으로 취급한다
- 다중상속을 지원하지 않는다
- c++에서는 추상클래스가 있지만 c#에서는 인터페이스가 있다
'TIL' 카테고리의 다른 글
[TIL] 내일배움캠프_Unity 1일차 git,github (0) | 2023.08.07 |
---|---|
[TIL] 사전캠프 5일차 (0) | 2023.08.04 |
[TIL] 사전캠프 4일차 (0) | 2023.08.03 |
[TIL] 사전캠프 3일차 (1) | 2023.08.02 |
[TIL] 사전캠프 2일차 (0) | 2023.08.01 |