외로운 Nova의 작업실
c# 언어 공부 - 1(자료형) 본문
안녕하세요. 원래는 하드웨어 공부를 하려했는데, 하드웨어 관련 공구들이나 재료들을 살 돈이 아직 없어서 먼저 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언어를 먼저 공부해주시기바랍니다.
'Programming > C#' 카테고리의 다른 글
c# 언어 공부 - 3(클래스,static,복사,this, 접근한정자) (0) | 2022.05.02 |
---|---|
c# 언어 공부 - 2(산술연산자, 코드흐름제어, 메소드) (0) | 2022.04.30 |
c# 계산기프로그램만들기 - 6 (0) | 2022.03.22 |
c# 계산기프로그램만들기 - 5 (0) | 2022.03.22 |
c# 계산기프로그램만들기 - 4 (0) | 2022.03.22 |