2012-01-14 1 views
0

내가 아는 유일한 .NET 언어는 C#입니다. C#에서는 lhs=rhs을 쓸 수 있으며, 구조체가 값으로 복사하면 클래스가 참조로 복사합니다..NET IL은 참조 또는 값으로 복사를 지원합니까?

.NET CLI는 모든 유형의 객체에서 수행 할 수 있습니까? 나는 struct Pt { int x, y; }를 생성하고 값 유형에 IL 수준의 참조에

Pt pt 
var pt_ref=&pt 
pt_ref.x=99 //pt.x is now 99 
var pt_cpy=pt 
pt_cpy.x=88 //nothing else has changed 

답변

3

뭔가를 할 수있는 것은 가능성이다. C#을합니다 (ref 키워드를 사용하여 매개 변수를 제외)을 허용하지 않습니다하지만, C++/CLI에서 당신은 당신의 예를 작성할 수 있습니다 :

value struct Pt 
{ 
    int x; 
    int y; 
}; 

void f() 
{ 
    Pt pt; 
    Pt% ptRef = pt; 
    ptRef.x = 99; 
    Pt ptCpy = pt; 
    ptCpy.x = 88; 
} 

그러나, 다른 방법은 주위 불가능입니다. 참조 유형이 있고 그 사본을 작성하는 경우, 참조 된 오브젝트가 아닌 참조 자체의 사본을 작성합니다. 참조 된 개체를 복사하려면 직접 복사 할 함수를 작성해야합니다.

+0

니스! 감사! (왼쪽 문자) –

관련 문제