2012-03-24 4 views
1

데이터 멤버가 디스크에 저장된다는 것을 알고 있지만 object/class의 메서드가 바이너리 형식으로 저장되어 있는지 궁금합니다. 예를 들어객체/클래스 메소드도 직렬화됩니까?

Ivor Horton : "클래스 개체는 데이터 멤버뿐만 아니라 함수 멤버도 포함하고 모든 멤버 (데이터와 함수 모두)는 액세스 지정자를 가지므로 개체를 기록 할 수 있습니다. 외부 파일 인 경우, 파일에 기록 된 정보는 관련된 모든 클래스 구조의 완전한 사양을 포함해야합니다. "

하고 : 따라서

Are methods also serialized along with the data members in .NET?

: 방법의 어셈블리 명령어 (op 코드 및 피연산자)뿐만 아니라 디스크에 저장된다? 미리 컴파일 된 LIB 또는 DLL처럼? DOS 시대 동안 나는 지금 그리고 그때에 어셈블리를 사용했다.

는 지금까지 내가 델파이와 다음 사이트 (dan04 의해 답변)에서 기억과 같이

Are methods also serialized along with the data members in .NET?

sizeof(<OBJECT or CLASS>) 함께 모든 데이터 멤버의 크기 (NO 방법/절차)를 제공 할 것입니다. 또한 좋은 C 예제는 데이터와 멤버가 하나의 클래스/구조체에 선언되어 있지만 런타임에 이러한 메소드는 데이터 구조체에서 작동하는 별도의 프로 시저입니다. 그러나, 나는 파스칼의 VMT와 같은 나중에 클래스/객체 구현이 메모리가 다를 수 있다고 생각한다.

+0

[가능한 방법은 .NET의 데이터 멤버와 함께 직렬화됩니까?] (http://stackoverflow.com/questions/2767893/are-methods-also-serialized-along-with-the-data- members-in-net) – EJP

+0

질문에 대한 답변이 해당 링크에 있습니다. – EJP

답변

1

아니요, 메소드가 저장됩니다.

개체를 이전 상태로 복원하는 데 필요한 정보 만.

그래서 모든 값 필드와 소품이 저장됩니다 (이진 serializer를 사용한다고 가정). 그러나 어떤 경우에도 메소드는 존재하지 않습니다.