Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 19862|Odpowiedź: 1

[Źródło] Dziedziczenie cech .net/c# Szczegółowo

[Skopiuj link]
Opublikowano 14.02.2017 11:13:38 | | |
Opis:

Są dwie klasy: A i B, I A dziedziczy klasę B, a B jest klasą nadrzędną

Ustawiłem właściwości TestAttribute odpowiednio w klasie A i B...

Następnie weźmy cechy obiektu, a kod wygląda następująco:



Zauważyłem, że liczba wyników wynosi 1, a atrybut to zestaw atrybutów A, a nie zestaw atrybutów B, nie mówiąc już o połączeniu – dlaczego tak jest???


[Help("BaseClass")] publicclass Base{} publicclass Wyprowadzać : Base{}
Są tu cztery możliwe kombinacje:

[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false ]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = fałsz ]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true]  
Pierwszy przypadek:

Jeśli zapytamy klasę Derive (zobaczymy później, jak zapytać o właściwości klasy w czasie działania), okaże się, że funkcja Pomoc nie istnieje, ponieważ odziedziczona właściwość jest ustawiona na false.

Drugi przypadek:

Tak samo jak w pierwszym przypadku, ponieważ dziedziczone jest też ustawione na fałsz.



Trzecia sytuacja:

Aby wyjaśnić trzeci i czwarty przypadek, najpierw dodajmy trochę kodu do klasy pochodnej:

[Help("BaseClass")] publicclass Base{}[help("DeriveClass")] publicclass Derive : Base{}
Teraz zapytajmy funkcję Pomocy, możemy uzyskać tylko właściwości klasy pochodnej, ponieważ dziedziczone jest ustawione na prawdę, ale AllowMultiple jest ustawione na false. W związku z tym funkcja Help klasy bazowej jest nadpisywana przez funkcję pomocy klasy pochodnej.

Czwarta sytuacja:

Tutaj okazuje się, że klasa pochodna ma zarówno funkcję Pomoc, jak i własną Pomoc, ponieważ Dowolność Wielokrotnego jest ustawiona na prawdę.







Poprzedni:Przypisanie C# między dwoma właściwościami obiektów
Następny:Niewychwycony TypeError: a(...). rodzice(...). a Self nie jest funkcją
 Ziemianin| Opublikowano 30.03.2017 09:35:49 |
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com