최상위 레벨에는 Person 클래스가 있습니다. 다음으로, 회원이 사람이기 때문에 .NET의 MembershipUser 클래스에서 상속 받길 원합니다. 그러나 MembershipUser 클래스를 확장하여 MembershipUser에서 상속받은 내 OWN MembershipUser 클래스를 만들고 자신의 속성을 추가해야한다고 생각합니다. 하지만 일단 그렇게하면 다중 상속 규칙 (ASP.NET 2.0)으로 인해 Person에서 더 이상 상속받을 수 없습니다.다중 상속없이 te 회원 사용자 클래스를 확장하는 방법은 무엇입니까?
1
A
답변
1
당신은, IPerson
을 인터페이스를 생성하고 MembershipUser
에서 상속 및 IPerson
를 구현하는 클래스와 콘크리트 Person
클래스를 대체하여이 문제를 해결할 수 있습니다.
당신은 또한 당신의 콘크리트 Person
을 유지 IPerson
을 작성하고 자신의 클래스가 Person
인스턴스를 캡슐화하고 IPerson
을 구현하면서 MembershipUser
에서 상속있을 수 있습니다.
어느 경우 든 한 번 구체 Person
유형을 사용했던 곳에서는 IPerson
(메소드 인수 등)으로 대체해야합니다. 또한
interface IPerson
{
string LastName { get; set; }
// ...
}
class MyMembershipUser : MembershipUser, IPerson
{
private Person _person = new Person();
// constructors, etc.
public string LastName
{
get { return _person.LastName; }
set { _person.LastName = value; }
}
}
...
class Person
{
private readonly MembershipUser _mu;
public Person(MembershipUser mu)
{
_mu = mu;
}
public static explicit operator MembershipUser(Person p)
{
// todo null check
return p._mu;
}
}
// example
var person = new Person(Membership.GetUser("user"));
Membership.UpdateUser((MembershipUser)person);
을 사람을 계속 사용하고 (생성자의 일부로서)는 MembershipUser 인스턴스를 캡슐화하고 필요 MembershipUser에 사람에 대한 명시 적 캐스트가 포함이 그럴 수 나는 것 직접 인터페이스 구현 솔루션을 사용하십시오.
관련 문제
- 1. java.security.SecureClassLoader 클래스를 확장하는 방법은 무엇입니까?
- 2. Java에서 다중 상속없이 클래스 계층 구조 설계
- 3. Reflection을 사용하여 Java 클래스를 확장하는 방법은 무엇입니까?
- 4. Java FilterOutputStream 클래스를 올바르게 확장하는 방법은 무엇입니까?
- 5. 클래스를 확장하는 모듈 확장하기
- 6. ASP.NET 회원 - 검색 사용자
- 7. generic을 확장하는 generic을 확장하는 클래스를 선언하는 방법
- 8. SurfaceView를 확장하는 클래스를 만드는 방법은 어떻게 시작하나요?
- 9. WhitespaceTokenizer를 확장하는 방법은 무엇입니까?
- 10. JTree를 확장하는 방법은 무엇입니까?
- 11. Asp.net에서 멤버십을 확장하는 방법은 무엇입니까?
- 12. cakephp에서 제 3 자 클래스를 확장하는 방법은 무엇입니까?
- 13. 클래스가 다른 파일에있는 경우 Django 메타 클래스를 확장하는 방법은 무엇입니까?
- 14. PHP 클래스는 왜 작동하지 않는가? 클래스를 올바르게 확장하는 방법은 무엇입니까?
- 15. app/models에서 기존 실행 클래스를 덮어 쓰거나 확장하는 방법은 무엇입니까?
- 16. 하위 클래스에서 내부 클래스를 재정의/확장하는 방법은 무엇입니까?
- 17. WPF 애니메이션 클래스를 확장하는 신비
- 18. 모듈 로더를 확장하는 가장 좋은 방법은 무엇입니까?
- 19. String 매개 변수를 사용하는 사용자 정의 예외를 사용하여 Java Exception 클래스를 확장하는 방법은 무엇입니까?
- 20. 트위터리스트 사용자 당 회원 수
- 21. ASP.NET 사용자/회원/회원/회원/보안/교장/프로필 ... 도움말
- 22. 사용자 정의 레코드 클래스를 확장하는 Doctrine 모델/클래스 생성 방법
- 23. 웹 사이트를 확장하는 방법은 무엇입니까?
- 24. CodeIgniter에서 도우미를 확장하는 방법은 무엇입니까?
- 25. 기능을 확장하는 최선의 방법은 무엇입니까?
- 26. gwt에서 나무를 확장하는 방법은 무엇입니까?
- 27. scriptaculous autocompleter를 확장하는 방법은 무엇입니까?
- 28. 사용자 정의 클래스를 직렬화하는 방법은 무엇입니까?
- 29. Entity Framework 클래스를 사용자 지정하는 방법은 무엇입니까?
- 30. ViewControllers에서 사용자 정의 클래스를 초기화하는 방법은 무엇입니까?