에 c를 소유에 PROPERTYNAME를 가져옵니다 그러지 마. 나는 속성을 소유하고있는 클래스에서 그 속성의 이름이 무엇인지 속성에 대해 알아야합니다.나는 다음과 같은 구조를 가지고 #
답변
이것은 완전히 완전히 불가능합니다.
단일 인스턴스는 여러 속성에서 참조 할 수 있습니다. 객체와 그 객체가 참조하는 속성 사이에는 연결이 없습니다. (GC에서는 예외는 없습니다.)
또한 JIT 인라이닝은 속성이 전혀 관련되지 않는다는 것을 의미 할 수 있습니다.
로컬 변수 이름이 최적화 된 바이너리에 존재하지 않습니다.
물론 불가능하지 않습니다. 정말 정말 열심히합니다. Stack Trace를 사용하여 Hello가 호출되는 메소드를 얻을 수 있습니다. 그런 다음 방법 본문을 사용하여 파악하십시오. 비록 거기에서도 나는 그것을 할 수있는 좋은 방법을 볼 수 없다. 그러나 모든 의향과 목적에 대해 당신의 대답은 올바른 것입니다. –
@Yuriy : 아니요. 그것은 정말로 불가능합니다. 당신은 호출이 메서드에서 어디 까지나 중요한 메서드에서 비롯된 것인지를 안정적으로 파악할 수 없습니다. (아마도 JITter를 복제하거나 두 번째 프로세스를 만들어 관리 된 디버거로 연결하면 _insane_ 및 불가능할 것입니다.) – SLaks
질문은 디자인에 심각한 오류가 있음을 의미하지만 속성 (로컬 변수가 아닌) 만 지원하면됩니다. 스택 추적을보고 메서드가 Bla.Hello()를 호출하는 객체를 찾은 다음 리플렉션을 사용하여 모든 객체의 속성 및 필드로 이동하고 값이 Bla 인스턴스 인 객체를 찾습니다. – Ran
나는 당신이 요구하는 것이 가능하다고 생각하지 않습니다. 당신이 reliabily 반사와 함께이 작업을 수행 할 수있는 방법이
SomeProperty = new Bla("SomeProperty");
AnotherProperty = new Bla("AnotherProperty");
이 현재 솔루션이지만, 누군가가 속성의 이름을 바꾸고 생성자를 잊어 버리면 뒤에있는 논리는 실패하지만 컴파일러는이를 확인할 수 없습니다. – Kolja
없습니다와 : 인스턴스를 만들 때 어쩌면 하나 개의 방법이 문자열을하는 것이 즐의 생성자에 대한 것 할, 다음, 당신은 문자열에 전달할 수 있습니다 그것은 처음부터 끔찍한 생각입니다. 인스턴스에 대한 메소드를 호출 할 때 변수를 선언하지 않고 메소드를 호출 할 수 있습니다. 예 :
string name=new Bla().Hello();
이 시나리오에서는 무엇을 인쇄합니까?
+1 그 반증에 대해 깜빡했다. – SLaks
- 1. 나는 다음과 같은 scneario 가지고
- 2. 나는 다음과 같은 코드를 가지고
- 3. 나는 다음과 같은 샘플을 가지고
- 4. 나는 테이블에 적용되는 다음과 같은 CSS를 가지고
- 5. 나는 다음과 같은 열을 가진 DataTable을 가지고
- 6. 나는 다음과 같은 선언하는 기능을 가지고
- 7. 이상한 오류가 나는 다음과 같은 코드를 가지고
- 8. RSA 내용에 대한 다음과 같은 구조를 가지고 나는 RSA의 pubkey.dat (그것이 무엇인지 거의 확실한)를 가지고
- 9. 나는 다음과 같이 두 가지 기본 구조를 가지고
- 10. 왜 우리는 다음과 같은 구조를 가진 테이블에 쿼리를 가지고 직장에서
- 11. 내가 다음과 같은 페이지-구조를 가지고 싶습니다 테이블
- 12. 자바 반사 : 나는 같은 클래스 계층 구조를 가지고
- 13. 어떻게 다음과 같이 내가 디렉토리 구조를 가지고
- 14. 나는 다음과 같은 오류가 다음과 같은 예에서
- 15. 나는 다음과 같은 구조를 가지고 사용자 정의 WebControl을 구축했습니다 ASP.NET 사용자 정의 컨트롤
- 16. 나는 나는 다음과 같은 URL을
- 17. 나는 다음과 같은 구조를 가진 두 개의 테이블이 여러 OR의
- 18. 클릭하면, 다음과 같은 코드를 가지고
- 19. 나는 다음과 같은 한
- 20. 나는 다음과 같은 검사를
- 21. 나는 다음과 같은 한 #
- 22. 나는 다음과 같은 코드가
- 23. 나는 다음과 같은 클래스가
- 24. 나는 다음과 같은 코드가
- 25. SQL 서버 2008 나는 다음과 같은 쿼리를 가지고
- 26. 나는 다음과 같은 데이터 템플릿 안에 몇 TextBlock을 가지고 DataTemplate을
- 27. 나는 다음과 같은 방법에 EJB 프로젝트 설정을 가지고
- 28. 나는 다음과 같은 기능을 가지고 HTTP 상태 코드
- 29. jQuery를 : 네임 스페이스가 나는 다음과 같은 HTML을 가지고 1.3.2
- 30. 나는 다음과 같은 체크 박스를 가지고 JQuery와 모바일 체크 박스
고유 한 CLR 버전을 만들지 않으면이 작업을 수행 할 수 없습니다. – SLaks