1
생각되었다 :동적 객체를 반환하는 확장 메서드를 작성하는 방법은 무엇입니까? 내가 Regex.Match.Group 동적되고 싶어 방법에 대해
Regex.Match (...).Groups["Foo"]
싶습니다 :
Regex.Match (...).Groups.Foo
내가 허용 할 확장 메서드를 작성하는 생각 :
Regex.Match (...).Groups().Foo
이렇게 작성하려고 시도했지만 허용되지 않습니다 (';'require "정적 동적 ')
public static dynamic DynamicGroups Groups(this Match match)
{
return new DynamicGroups(match.Groups);
}
public class DynamicGroups : DynamicObject
{
private readonly GroupCollection _groups;
public DynamicGroups(GroupCollection groups)
{
this._groups = groups;
}
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
Group g = this._groups[binder.Name];
if (g == null)
{
result = null;
return false;
}
else
{
result = g;
return true;
}
}
}
상관로서 D는이를 위해?
dynamic
전에 작성된 다른 API가 많이 있는데,이 방법을 사용하는 것이 더 깔끔할 수 있습니다.
이 내가 제어를 통해이 코드에 가까워되지 않는 이유 동적 같은 좋은 예입니다하기
dynamic DynamicGroups
변경합니다. 당신이 이것으로 달성 할 수있는 유일한 것은 당신이 정적으로 타이핑되어 보이지만 보이지 않는 것을 가지고 있다는 것입니다. – erikkallen@erik : 매우 실제적인 걱정입니다. 나는 내가 그것을 좋아하는지보기 전에 그것이 가능했는지보기로 결정했다. 확장 메소드'DynamicGroups()'를 호출하여이를 명확하게하려고 생각했습니다. 어떻게 생각해? –