람다 식에서 개인 속성을 참조 할 수 있습니까? 아니면 공공의 소유물일까요?참조 람다 식의 전용 속성?
예를 들면. 코드의 라인이 될 것이다, 내 개인 재산이 InnerCollection라는 말 :
x => x.InnerCollection
어떻게 든이를 달성 할 수있는 방법이 있나요 - 등 반사를 사용하지 않고는?
. NET 4.0을 사용 중입니다.
감사합니다.
크리스
람다 식에서 개인 속성을 참조 할 수 있습니까? 아니면 공공의 소유물일까요?참조 람다 식의 전용 속성?
예를 들면. 코드의 라인이 될 것이다, 내 개인 재산이 InnerCollection라는 말 :
x => x.InnerCollection
어떻게 든이를 달성 할 수있는 방법이 있나요 - 등 반사를 사용하지 않고는?
. NET 4.0을 사용 중입니다.
감사합니다.
크리스
람다 정의가 private 필드/속성이 정의 된 클래스의 메서드에 없다면, 없습니다. 그러면 반성을 다루어야 할 것입니다.
"클래스 안에 있지 않으면"람다 정의가 아니라 람다 호출을 참조하는 것처럼 들립니다. 아래에 헹크의 대답을 적어 두십시오. – shannon
아니,하지 않는 한 (가능성) 람다가 x
의 클래스의 메서드 내 정의된다.
클래스의 외부 또는 내부에서 사용할 수 있습니다. 현재 필드에서만 작동하지만 원하는 경우 속성에 대해 수정할 수 있습니다.
public class MyClass
{
private int _secret = 10;
}
var myClass = new MyClass();
Console.WriteLine("func:" + GetFieldAccessor<MyClass, int>("_secret").Invoke(myClass));
"사유 재산은"당신이 클래스의 외부에서 액세스 할 수 없음을 의미 :
사용은 것 같이 보입니다. –