✳ ref
→ 복사 , 참조
→ 기본값은 복사
→ 메모리가 딴판
→ 포인터같은 느낌 원본을 가져와서 수정할 수 있음
using System.Security.Cryptography.X509Certificates;
namespace CShop
{
class Program
{
static void AddOne(ref int number)
{
number = number + 1;
}
static void Main(string[] args)
{
// 복사(짭퉁) , 참조(진퉁)
int a = 0;
AddOne(ref a); // 애가 복사하는 게 아니라 참조하겠다 , 수정 가능!
Console.WriteLine(a);
}
}
}
// 진퉁 원본으 수정할 수 있음
static void AddOne(ref int number) // ref 적어줘야함
{
number = number + 1;
}
// 짭퉁 원본을 수정할 수 없음
static int AddOne2(int number)
{
number = number + 1;
return number;
}
using System.Security.Cryptography.X509Certificates;
namespace CShop
{
class Program
{
// 값을 바꿀 때
static void Swap(ref int a , ref int b)
{
int temp = a; // 임시 저장
a = b;
b = temp;
}
static void Main(string[] args)
{
int num1 = 0;
int num2 = 1;
Swap(ref num1, ref num2);
Console.WriteLine(num1);
Console.WriteLine(num2);
}
}
}
✳ out
namespace CShop
{
class Program
{
// out 진퉁으로 작업
static void Divide(int a, int b, out int result1, out int result2)
{
result1 = a / b; // 나누기
result2 = a % b; // 나머지
}
static void Main(string[] args)
{
int num1 = 15;
int num2 = 3;
int result1;
int result2;
Divide(15, 3, out result1, out result2);
Console.WriteLine(result1);
Console.WriteLine(result2);
}
}
}