input, enum의 활용, 값 형식,참조 형식, Boxing,산술연산
using System;
namespace LearnDotnet
{
enum eRace
{
Terran = 1,
Protoss = 2,
Zerg = 3
}
internal class Program
{
static void Main(string[] args)
{
Console.Write("(1.테란, 2.프로토스, 3.저그) 종족의 번호를 입력하세요:");
//입력받아 그 값을 input이라는 변수에 저장하기
string input = Console.ReadLine();
Console.WriteLine("당신이 입력한 값은:{0}입니다",input);
//문자열-> 정수형-> 열거형 으로 변환
int intInput = Convert.ToInt32(input);
eRace selectedRace = (eRace)intInput;
//eRace selectedRace = (eRace)Convert.ToInt32(input);으로 쓸 수도 있다.
//eRace selectedRace = eRace.Terran;
Console.WriteLine("당신이 선택한 종족은 {0}입니다.", selectedRace);
}
}
}
변수를 저장하면 스택 메모리가 할당된다.
스택메모리에 저장되는 값형식이라 한다.
힙에 저장되는 형식은 참조형식이라 한다.
참조형식은 스택과 힙 메모리 모두를 사용한다.
: 스택 메모리에 값이 저장되어있는 주소를 저장하기 때문이다.
null 은 개체를 참조하지않는 null 참조를 나타내는 리터럴이다.
즉, null은 아무것도 참조하지 않는 값이다. -> '값'이므로 변수에 넣을 수 있다.
null은 참조 형식 변수의 기본값이다.
다음과 같이 코드를 작성할 수도 있다.
using System;
namespace LearnDotnet
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("--> {0}",null);//아무것도 출력되지않음: 널값이 나왔으나 안보이는것.
string name = null;
Console.WriteLine("name: {0}", name);
}
}
}
Boxing은 값 형식을 object 형식으로 변환하는 프로세스이다.(object형식은 원래 참조형식이다.)
Unboxing은 object형식에서 값형식으로 변환하는 프로세스이다.
Boxing은 암시적이며 Unboxing은 명시적이다.
using System;
namespace LearnDotnet
{
internal class Program
{
static void Main(string[] args)
{
int i = 123;
object obj = i;//박싱 : 암시적
//object obj = (object)i;로 명시적으로 나타낸 것이다.
//쓸수도있고, 안쓸수도있다.
//언박싱
int ii = (int)obj;//명시적
}
}
}
'C# 기초' 카테고리의 다른 글
for문 연습문제 나머지(5~14)+도전문제 (0) | 2023.07.20 |
---|---|
비교 연산자, if문, for문 (0) | 2023.07.20 |
var, const, 열거형 (0) | 2023.07.20 |
스타크래프트 (0) | 2023.07.19 |
캐스팅 (0) | 2023.07.19 |