반응형
C# 타입 캐스팅
C#에는 두 가지 유형의 타입 캐스팅이 있다. 암시적 캐스팅과 명시적 캐스팅이다.
Implicit Casting(암시적 캐스팅)
더 작은 크기의 유형을 더 큰 크기의 유형으로 전달할 때
암시적 캐스팅이 자동으로 수행한다.Automatic casting이라고도 한다.
예시:
int myInt = 9;
double myDouble = myInt; // Automatic casting: int to double
Console.WriteLine(myInt); // Outputs 9
Console.WriteLine(myDouble); // Outputs 9
Explicit Casting(명시적 캐스팅)
명시적 캐스팅은 값 앞에 괄호 안에 유형을 배치하여 수동
으로 수행한다.Manual casting이라고도 한다.
예시:
double myDouble = 9.78;
int myInt = (int) myDouble; // Manual casting: double to int
Console.WriteLine(myDouble); // Outputs 9.78
Console.WriteLine(myInt); // Outputs 9
Type Conversion Methods(유형 변환 방법)
Convert.ToBoolean
, Convert.ToDouble
, Convert.ToString
, Convert.ToInt32(int)
및 Convert.ToInt64(long)
와 같은 내장 메서드를 사용하여 명시적으로 데이터 형식을 변환한다.
예시:
int myInt = 10;
double myDouble = 5.25;
bool myBool = true;
Console.WriteLine(Convert.ToString(myInt)); // convert int to string
Console.WriteLine(Convert.ToDouble(myInt)); // convert int to double
Console.WriteLine(Convert.ToInt32(myDouble)); // convert double to int
Console.WriteLine(Convert.ToString(myBool)); // convert bool to string
- 변환이 왜 필요한가? : 유형 변환이 필요한 경우는 많지 않다고 한다. 사용자 입력 등에서 작업할 때 사용되기도 한다. 아래 예시를 살펴보자.
Console.WriteLine("Enter your age:");
int age = Convert.ToInt32(Console.ReadLine()); // string으로 입력받은 값을 Int로 변환 후 age에 할당
Console.WriteLine("Your age is: " + age);
매개변수
Parameter(매개변수) & Arguments(인수)
- Parameter(매개변수) : 매개변수는 메소드 내에서 변수 역할을 한다. 원하는 만큼 추가 할 수 있고, 쉼표로 구분한다.
- Arguments(인수) : 매개변수가 메소드에 전달되면 이를 인수라고 한다.
예시:
static void MyMethod(string fname) // fname == Parameters
{
Console.WriteLine(fname + " Refsnes");
}
static void Main(string[] args)
{
MyMethod("Liam"); // Liam and 2 others == Arguments
MyMethod("Jenny");
MyMethod("Anja");
}
Multiple Parameters(다중 매개변수)
static void MyMethod(string fname, int age) // 두 개의 매개변수
{
Console.WriteLine(fname + " is " + age);
}
static void Main(string[] args)
{
MyMethod("Liam", 5);
MyMethod("Jenny", 8);
MyMethod("Anja", 31);
}
Default Parameter Value(기본 매개변수 값)
등호(=)를 사용하여 기본 매개변수 값을 사용한다.
static void MyMethod(string country = "Norway")
{
Console.WriteLine(country);
}
static void Main(string[] args)
{
MyMethod("Sweden");
MyMethod("India");
MyMethod(); // 매개변수를 지정해주지 않았으므로 Norway가 출력된다.
MyMethod("USA");
}
// Sweden
// India
// Norway
// USA
Return Values(반환값)
메소드가 값을 반환하도록 하려면 void 대신 기본 데이터 유형(예: int 또는 double)을 사용하고 메소드 내부에서 return 키워드를 사용한다.
static int MyMethod(int x)
{
return 5 + x;
}
static void Main(string[] args)
{
Console.WriteLine(MyMethod(3));
}
// Outputs 8 (5 + 3)
반환값을 변수에 저장 하는 것도 가능하다.
static int MyMethod(int x, int y)
{
return x + y;
}
static void Main(string[] args)
{
int z = MyMethod(5, 3);
Console.WriteLine(z);
}
// Outputs 8 (5 + 3)
Named Arguments
key: value
구문을 사용하여 인수를 보내는 것도 가능하다.
static void MyMethod(string child1, string child2, string child3)
{
Console.WriteLine("The youngest child is: " + child3);
}
static void Main(string[] args)
{
MyMethod(child3: "John", child1: "Liam", child2: "Liam");
}
// The youngest child is: John
Method Overloading
메소드 오버로딩을 사용하면 여러 메소드가 서로 다른 매개변수를 사용하여 동일한 이름을 가질 수 있다
.
static int PlusMethod(int x, int y)
{
return x + y;
}
static double PlusMethod(double x, double y)
{
return x + y;
}
static void Main(string[] args)
{
int myNum1 = PlusMethod(8, 5);
double myNum2 = PlusMethod(4.3, 6.26);
Console.WriteLine("Int: " + myNum1);
Console.WriteLine("Double: " + myNum2);
}
반응형
'게임 & 게임개발 > C# 기초' 카테고리의 다른 글
[C#기초] 반복문, 배열, 메소드 (0) | 2024.04.18 |
---|---|
[C#기초] 문자열, if문, switch문 (0) | 2024.04.17 |
C# 기초 Lv0 #3 | ToString함수와 Int32.Parse함수의 활용 (0) | 2023.04.26 |
C# 기초 Lv0 #2 | 문자열 돌리기 (0) | 2023.04.23 |
C# 기초 Lv0 #1 | 특수 문자 출력하기 (0) | 2023.04.23 |