외로운 Nova의 작업실

c# 언어 공부 - 1(자료형) 본문

Programming/C#

c# 언어 공부 - 1(자료형)

Nova_ 2022. 4. 29. 23:09

안녕하세요. 원래는 하드웨어 공부를 하려했는데, 하드웨어 관련 공구들이나 재료들을 살 돈이 아직 없어서 먼저 c#언어를 공부하려고합니다. 

 

<c# 소개>

c#은 윈도우 form을 만들 수 있어서 ui에 친숙한 언어입니다.

다만 윈도우에서만 실행가능한 어플리케이션을 만들 수 있습니다.

하지만 데스크탑의 os가 거의 윈도우라는 점을 인식하면 굉장히 winform은 유용합니다!(만들면 많은 사람들이 쓸 수 있기때문입니다)

c#은 객체지향 프로그래밍입니다.

c언어는 절차지향 프로그래밍으로 코드를 짤때 순서대로 짜야한다는 생각을 가지고 하지만, c#은 객체지향 프로그래밍이므로 클래스(자판기에서의 버튼같은 일정 일을 하는 모듈)를 만들고 사용한다는 생각을 가지고 프로그래밍합니다.

먼저, hello world 콘솔 출력 c#언어를 짜보겠습니다. (개발환경은 vscode입니다)

#using System
#using static System.Console;

namespace Hello
{
	class MainApp
    {
    	static void Main(string[] args)
        {
        	Console.WriteLine("hello world");
        }
    }
}

처음에 나오는 using구문은 c언어에서 #include와 비슷한 기능을 합니다. 

System은 namespace입니다.

namespace는 클래스를 모아두는 공간입니다.

예를 들어 자판기라는 namespace에는 버튼 클래스, 가격 클래스, 음료수를 나오게하는 클래스등등을 모아둘 수 있습니다.

2번째 줄에 System.Console은 System네임스페이스에서 Console이라는 클래스를 사용하겠다는 것입니다.

Concole클래스에는 콘솔창에 출력하는 기능을 하는 메서드가 있습니다.(WriteLine)

3번째 줄 namespace Hello 라는 줄로 네임스페이스의 이름을 Hello라고 선언합니다.

이는 다른 곳에서 Hello를 using하고 Hello안의 클래스를 사용 할 수 있습니다.

4번째 class MainApp이라는 줄로 클래스의 이름을 MainApp이라고 선언합니다.

이는 다른곳에서 MainApp의 클래스를 사용할 수 있습니다.

5번째 static void Main(string[] args) 구문은 처음 실행할 메서드입니다.

c언어에서 main함수와 같은 역할을 합니다.

특별하게 static을 꼭 써줘야 메인메모리에 공간을 할당하여 실행이됩니다.

6번째 줄 Console.WriteLine("hello world")구문은 Console객체의 WriteLine메서드를 사용하는 구문입니다.

WriteLine으로 전달된 매게변수는 콘솔 출력창에 표시됩니다.

 

이제 자료형을 살펴보겠습니다

<정수자료형>

byte 부호없는 정수 1바이트
sbyte 정수 1바이트
short 정수 2바이트
ushort 부호없는 정수 2바이트
int  정수 4바이트
uint  부호없는 정수 4바이트
long 정수 8바이트
ulong 부호없는 정수 8바이트
char  유니코드문자 2바이트

<실수자료형>

float 단일 정밀도 부동 소수점 형식 4바이트
double 복수 정밀도 부동 소수점 형식 8바이트
decimal 29자리데이터를 표현할 수 있는 소수 16바이트

<문자형>

char 문자
string 문자열

문자열 메소드

indexOf() 문자 또는 문자열의 위치를 반환함
LastIndex() 문자 또는 문자열의 위치를 뒤에서 부터 찾고 반환함
StartsWith() 지정된 문자열로 시작하는지 평가함
EndsWith() 지정된 문자열로 끝나는지 평가함
Contains() 지정된 문자열을 포함하는 평가함
Replace(a, b) a문자열을 b문자열로 대체하고 반환함
ToLower() 대문자를 다 소문자로 바꾸고 반환함
ToUpper() 소문자를 다 대문자로 바꾸고 반환함
Insert(a, b) a번째에 b문자열을 넣고 반환함
Remove(a, b) a부터 b번째까지 문자를 삭제하고 반환함
Trim() 앞뒤 공백을 없애고 반환함
TrimStart() 앞에있는 공백 없애고 반환함
TrimEnd() 뒤에있는 공백 없애고 반환함
Split(a) a문자를 기준으로 분리하고 분리한 문자열 배열을 반환함
SubString(a, b) a번째부터 b만큼만 남기고 반환함

 

<논리형식>

bool 1바이트 true,false 중 하나의 값

<다양한 자료들을 담을 수 있는 자료형>

object 모든 자료형의 조상
var 컴파일러가 알아서 자료형 정해줌

단, object는 내부적으로 포인터와 비슷하게 힙영역에 값을 넣어놓고 스택에 변수값에는 힙영역의 주소를 넣어줌

var은 컴파일러가 알아서 자료형을 변경해서 스택에 변수를 할당해줌

<nullable 형식>

c#에서는 보통의 자료형엔 null을 넣을 수 없다.

그럼 자료형 뒤에 ?를 붙여줘야만이 null을 넣을 수 있다.

ex) int? x = null;

 

<문자열에서의 변수 표현>

#using System
#using static System.Console;

namespace Hello
{
	class MainApp
    {
    	static void Main(string[] args)
        {
        	int a = 3;
            
        	Console.WriteLine($"hello world {a}");
        }
    }
}

 

이로써 c#의 자료형을 알아봤습니다.

다음시간에는 연산자와 코드 흐름제어구문등등을 배워보도록 하겠습니다.

이번 장이 어려우신분들은 c언어를 먼저 공부해주시기바랍니다.

 

Comments