프로젝트 생성
.NET 콘솔 앱 생성
정수 형식
// 주석
/* 주석 */
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
byte _byte = 100; // 1바이트
short _short = 100; // 2바이트
int hp = 100; // 4바이트
long _long = 100; // 8바이트
float _f = 3.0f; // 4바이트
double _d = 3.0f; // 8바이트
const int hp2 = 100; // const로 상수화 가능
Console.WriteLine("int : {0}", hp);
}
}
}
불리언 소수, 문자, 문자열
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
/* 불리언 */
bool b; // bool
// bool 은 1바이트인데 true, fale만 표현하는데 왜 1바이트를 쓸까?
// 컴퓨터가 처리할때 오히려 1바이트를 쓰는게 유리하다
/* 소수 */
float f; // 4 바이트
double d; // 8 바이트
f = 3.14f;
d = 3.14;
/* 문자 */
char c; // 2 바이트
c = '가';
/* 문자열 */
string s;
s = "Hello World!";
}
}
}
형식변환
int a = 1000;
short b = a; // Error : 암시적 형변환 불가
short b = (short)a; // okay
byte c = 255;
sbyte sb = c; // Error
sbyte sb = (sbyte)c; // -1
// 0xFF = 0b11111111 == -1
float f = 3.1414f;
double d = f;
비트연산
int num = 1;
num = num << 1;
Console.WriteLine(num); // 2
/*
& (AND)
| (OR)
^ (XOR)
~ (NOT)
*/
var
컴파일러에게 자료형선언을 넘긴다.
var a = 10; // int
var s = "Hello"; // string
var b = false; // bool
ArraySegment
int[] ary1 = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// 복사하지 않고 ary1의 특정위치를 참조(마치 포인터 처럼)
ArraySegment<int> argSeg = new ArraySegment<int>(ary1, 2, 5);
// 출력해보기
for(int i = arySeg.Offset; i < arySeg.Offset + arySeg.Count; i++)
{
Console.WriteLine("{0}:{1}", i, arySeg.Array[i]);
}