static void Sqr(ref int x)
{
x = x * x;
}
static void Main()
{
int a = 3;
Sqr(ref a);
Console.WriteLine(a); // Outputs 9
}
이런 코드 있을때 ref가 C/C++로 치면 주소값 넘기는거잖아
그럼 ref 써놓은 코드도 내부적으로는 C C++하고 다를거 없음? 예외처리같은게 더 들어가있는건가?
static void Sqr(ref int x)
{
x = x * x;
}
static void Main()
{
int a = 3;
Sqr(ref a);
Console.WriteLine(a); // Outputs 9
}
이런 코드 있을때 ref가 C/C++로 치면 주소값 넘기는거잖아
그럼 ref 써놓은 코드도 내부적으로는 C C++하고 다를거 없음? 예외처리같은게 더 들어가있는건가?
엄밀히 따지면 주소값이 아니라 C++에서의 lvalue 레퍼런스 같은건데, 너무 제약이 많아서 그냥 안 쓰는게 편하더라. 어차피 C# 자체가 빠릿빠릿하라고 쓰는게 아니니 - return 0;