C#

8일차 - C#

hcs8697 2026. 5. 1. 22:27

[학습내용]

 

1. C#이란.

 

 객체지향 프로그래밍(Object-oriented programming, OOP) 언어.

 

 데이터를 조작하는 객체들을 메서드라는 단위로 엮어, 객체들 간의 상호작용으로 로직을 구성하는 방식.

 

 재사용성과 유지보수가 용이하며, 클래스(설계도)를 통해 객체를 생성하여 대규모 소프트웨어 개발에 필수적으로 사용됨.

 

 변수를 초기화하지 않으면 주의 문구가 뜨는 등, C++보다 엄격하다.

 

2. 그래서 어떻게 씀?

 

 기본적으로 처음 배울 때는 static void Main()이라고 쓰여있고 그 아래에 {가 있을 것이다.

 

 그 아래에 더 보면 }도 있을 것이다.

 

 우선은 그 안에만 작성하면 된다. (킹중에 배움.)

 

  1) 변수 선언

 

  사전학습에서 배운 바와 같이, 데이터들은 각각의 특성이 있다. 그렇기에 이를 지정해서 변수를 선언해줘야 한다.

 

  데이터타입 변수명 = 값;

 

  위와 같은 방식으로 선언한다.

 

  변수명을 지을 때는 여러 규칙이 있지만, 중시해야 할 원칙들은

 

  ① 가급적 영어로 작성할 것

  ② 헷깔리는 문자를 사용하지 말 것 (대문자 I, 소문자 l, 1 등등)

  ③ 가급적 카멜케이스를 쓸 것. (두 단어의 조합으로 지을 거면, 첫 번째 단어는 소문자, 두 번째 단어는 대문자)

  ④ 띄어쓰기는 못 쓰니 필요하다면 _으로 적을 것.

 

  등이 있다. 이것보다 더 많긴 하지만 일단 이것만 지키면 대부분 문제는 없다.

 

  2) 입출력

 

  C#은 입력을 문자열로 받는다.

 

  stirng 변수명 = Console.ReadLine();

 

  위 문구는 string 데이터타입의 변수를 선언하고, 그 안에 입력하여 값을 넣는다는 의미라고 이해할 수 있다.

  (그렇기에, 같은 변수에 다시 입력받게 하는 경우가 생긴다면 string은 붙여선 안 된다.)

 

  문자열 출력은 Console.Write("출력할 문자열");   Console.WriteLine("출력할 문자열")을 적으면 된다. 둘의 차이는 줄바꿈이 들어가냐 안 들어가냐이다.

 

  입력한 값을 출력하게 하고 싶다면, Console.Write($"변수명");와 Console.WriteLine( $"변수명" );을 사용하면 된다.

 

  3) 형변환(casting)

 

  데이터를 선언한 자료형에 맞는 형태로 변환하는 작업.

 

  다른 자료형의 데이터를 저장하기 위해선 형변환 과정을 거쳐야 한다.

 

  가령, C++에선 변수를 선언하고 cin>>변수명 이렇게 했지만,

 

  C#에서는 입력한 데이터는 모두 문자열로 저장된다.

 

  가령 100을 입력하면, 이걸 수치 100이 아닌 글자 100으로 저장한다는 뜻이다.

 

  그렇기에 정수형 변수에 넣을 수도 없고, 계산에 활용할 수도 없다.

 

  문자열을 변환하기 위해서는 Parse와 TryParse를 쓰는데, TryParse를 쓰는 것이 조금 더 좋긴 하다.

 

  3-1) 문자열의 형변환

 

  < 예시 >

 

  string number = Console.ReadLine();

 

  int.TryParse(number, out int result);

 

  이상의 예시를 보면 맨 앞에 int가 쓰여있다. 이는 입력한 문자열을 정수형으로 변환하겠다는 뜻이다.

 

  다음으로 out int result는 변환된 값을 정수형 변수인 result 생성해 그 안에 넣는다는 뜻이다. 변환에 성공했다면 TryParse는 true가 된다.

 

  따라서 100을 입력했다면, 그 수치를 활용하고 싶으면 변수 number가 아닌 result를 이용해 코드를 작성하면 된다.

 

  만일 정수형으로 변환할 수 없는 것 (숫자가 아닌 알파벳를 입력한다거나)을 입력하면 TryParse의 값은 false가 된다.

 

  3-2) 그 외의 형변환

 

  명시적 형변환과 묵시적 형변환이 있는데,

 

  명시적 형변환은 말 그대로 "나 이거 다른 형으로 바꿀게."라고 적어서 보여주는 것이다.

 

  가령, int형은 (범위가 있긴 하지만) 정수만 담을 수 있기에, 소숫점이 없는 음수, 0, 양수만 담을 수 있다.

 

  그래서 int number1 = 1.2; 이렇게 담으면 오류가 난다.

 

  형변환을 원하는 것에 ()를 쓰고 안에 데이터 타입을 적으면 된다. (단, 표현할 수 없는 범위는 버려진다.)

 

  int number1 = (int)1.2; 이렇게 하면 1.2라는 값을 int형으로 바꾼다는 뜻이다. 소숫점은 버려지게 된다.

 

  반면, 묵시적 형변환은 굳이 적지 않아도 알아서 형변환이 되게끔 하는 것이다.

 

  int num1 = 1234;

 

  long num2 = num1;

 

  위 두 줄은 int형 변수인 num1에 1234란 값을 넣고, long형 변수인 num2에 num1;에 담긴 값을 넣는다는 의미이다. ( =는 '값을 넣어준다.'이지, 같다는 뜻이 아니다.)

 

  long의 표현 범위가 int보다 넓기 때문에, 자동으로 형변환이 되는 케이스이다.

 

  간단히 생각하면, 큰 그릇의 국을 작은 그릇에 옮기려면 국자를 쓰던가 해서 덜어야 하고, 작은 그릇의 국을 큰 그릇에 옮길 때는 그냥 붓기만 하면 되는 것이다.

 

[회고]

 

쓰면서 들었던 BGM: Blue Stahli - Slick

https://youtu.be/TAfRMjM7gVs?si=biGPPr4Ju8JPTa6T

 

일단 내가 나중에 읽으려고 적는 거라, 다른 사람이 읽었을 때엔 도움이 될 것 같진 않다.

 

시간이 나는 대로 수정할 예정이긴 하다. 스스로가 보기에도 불편한 형식이긴 하고.

 

틀린 점이 있을 수도 있기에 유의해주시길 바란다.

'C#' 카테고리의 다른 글

9일차 - 메서드, ref, out, in, 배열  (0) 2026.05.08