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

Widok: 63994|Odpowiedź: 1

[Źródło] C# dziedziczy determinację IsAssignableFrom, IsSubclassOf

[Skopiuj link]
Opublikowano 18.11.2019 11:45:09 | | |
Czasami musimy ustalić, czy dana klasa implementuje interfejs, na przykład gdy używamy mechanizmu odbicia do znalezienia konkretnego typu.

Mówiąc prosto, możesz użyć metody Type.IsAssignableFrom:

IsAssignableFrom wskazuje, czy typ BarClass można przypisać interfejsowi IFoo, więc warunkiem zwrotu true jest bezpośrednia lub pośrednia implementacja interfejsu IFoo. Istnieje także metoda w typie typu IsSubclassOf, która jestTylkoUżywane do oceny relacji dziedziczenia klas, takich jak

Wskazuje, że FooClass jest dziedziczona po BarClass.

Oczywiście IsAssignableFrom może być również używany do określania dziedziczenia.

Zatem dla następującego kodu:

interfejs I { /* ... */ }
klasa A : Ja { /* ... */ }
klasa B : A { /* ... */ }
Wartości zwrotne dla IsSubclassOf i IsAssignableFrom to:

typeof(A).isAssignableFrom(typeof(I)); fałszywe
typeof(A).isSubClassOf(typeof(I)); fałszywe
  
typeof(I).isAssignableFrom(typeof(A)); prawda
typeof(I).isAssignableFrom(typeof(B)); prawda
typeof(B).isSubClassOf(typeof(I)); fałszywe
  
typeof(A).isAssignableFrom(typeof(A)); prawda
typeof(A).isSubClassof(typeof(A)); fałszywe
  
typeof(A).isAssignableFrom(typeof(B)); prawda
typeof(A).isSubClassof(typeof(B)); fałszywe
  
typeof(B).isAssignableFrom(typeof(A)); fałszywe
typeof(B).isSubClassof(typeof(A)); prawda






Poprzedni:Konwersja znaczników czasowych .NET Core (10-bitowy)
Następny:EF Core pit: DbContextPool powoduje wyczerpanie połączenia z bazą danych
 Ziemianin| Opublikowano 19.03.2021 13:39:47 |
Otrzymuje obiekt, który dziedziczy ogólną klasę bazową

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