C#
c# 클래스 이름 메모리 주소 참조형
시코.
2024. 3. 5. 18:01
728x90
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class foo
{
public int a;
}
class bar : foo
{
public int b;
}
namespace _20240305_변석진
{
internal class Testing
{
static void Main(string[] arg)
{
foo f = new foo();
bar b = new bar();
b.a = 8;
int a = f.a;
}
}
}
코드
디버깅 중 메모리 창에 &에 변수명을 치면 주소가 나온다
&f에있는 값을 거꾸로 보면
&f.a의 주소값근처가 나온다
f는 값으로 클래스의 주소를 가지고 있기 때문에 멤버변수의 주소 근처로 나온것같다
인스턴스의 값은 주소를 가지고 있는 참조형이라는 것을 알 수 있을것 같다.
https://www.delftstack.com/ko/howto/csharp/pass-objects-by-reference-in-csharp/
C#에서 참조로 개체 전달
기본적으로 모든 값 형식 변수는 값으로 전달되고 모든 참조 형식 변수는 C#의 함수에 대한 참조로 전달됩니다.
www.delftstack.com
여기서는 ref를 붙이지 않고 넘기면 포인터가 복사되는것처럼 작동 된다는 것같고 ref 붙이면 그대로 간다고 설명하는것 같다.
728x90