C#의 참고 문헌으로 그 패스를 주목하는 것이 중요하다 특정한 의미를 갖는다. 속성의 경우 속성은 설정 한 개체의 주소와 동일한 주소를 가리 키도록 끝납니다. 함수에 개체를 전달하는 경우 C#은 값 의미에 따라 전달 참조를 사용합니다. 즉, 참조 자체가 복사되므로 새 포인터가 전달 된 객체와 동일한 주소를 가리 킵니다. 이렇게하면 함수가 매개 변수를 null로 설정하여 함수가 원래 포인터를 무효화하는 것을 방지 할 수 있습니다. 실제로 원래 기준을 통과하기 위해, "REF"키워드가 사용되어야
class SomeClass
{
public object MyObjectProperty { get; set; }
}
var someClass = new SomeClass();
object someObject = new object();
someClass.MyObjectProperty = someObject; // Makes MyObjectProperty point to the same location as someObject
를 다음의 경우에, 값 의미론 기준이 사용된다 :
void MyMethod(object someObject)
{
someObject = null;
}
object someObject = new object();
MyMethod(someObject);
Console.WriteLine(someObject == null); // Prints false
를 다음의 경우에, 실제의 통과에 의해 참조 시멘틱스가 사용된다
void MyMethod(ref object someObject)
{
someObject = null;
}
object someObject = new object();
MyMethod(ref someObject);
Console.WriteLine(someObject == null); // Prints true
그래서 데이터 집합을 속성 매개 변수로 자식 폼에 전달한 다음 데이터 집합의 내용을 변경 한 다음 속성 반환 값을 검색하지 않고 자식 폼을 닫으면 만든 데이터 집합 개체의 변경 사항을 찾아야합니다. 부모 폼 권리 ? – Spooky2010
절대적으로 옳습니다. :-) – CesarGon
@Jon : 죄송합니다! 수정 해 주셔서 감사합니다! – CesarGon