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

Widok: 22710|Odpowiedź: 0

[Źródło] Różnica między strukturą a klasą w C#

[Skopiuj link]
Opublikowano 24.06.2016 11:53:06 | | |
Najważniejszą różnicą między klasą a strukturą jest to, że klasa jest typem referencyjnym, podczas gdy struct to typ wartości, a ich przydział w pamięci jest inny.

Czym jest klasa?

klasa, fundamentalna koncepcja w programowaniu obiektowym, to rodzaj niestandardowej struktury danych, która zazwyczaj zawiera pola, atrybuty, metody, atrybuty, konstruktory, indeksery, operatory itd. W .NET wszystkie klasy ostatecznie dziedziczą klasę System.Object, więc są typem referencyjnym, czyli gdy nowotworzysz instancję klasy, adres tej instancji w zarządzanym stosie jest przechowywany na stosie, a wartość instancji w stercie zarządzanym.

Czym jest struktura?

Struktura to typ wartości używany do organizacji zestawu powiązanych zmiennych w jedną jednostkę zmienną. Wszystkie struktury są dziedziczone z klasy System.ValueType, więc są typem wartości, tzn. instancja struktury jest tworzona na stosie, do którego przypisany jest wątek, i sama przechowuje tę wartość. Dlatego używając struktury, możemy traktować ją jako podstawową klasę typów, taką jak int i char.



1. klasa to typ odniesienia, a struktury to typ wartości

Ponieważ klasa jest typem odniesienia, klasę można ustawić na null. Ale nie możemy uczynić struktury null, bo to typ wartości.




2. Gdy instancjonujesz klasę, zostanie ona utworzona na stercie. I instancjonujesz strukturę, która zostanie utworzona na stosie

3. Używasz odniesienia do instancji klasy. I nie używasz odniesienia do konstrukcji. (zamiast tego używać ich bezpośrednio)

4. Gdy przekazujemy klasę jako argument do metody, przekazujemy referencję. Struktura przekazuje wartość, a nie referencję.

5. Struktury nie mogą mieć inicjalizatorów, klasy mogą mieć inicjalizatory.





6. Klasy mogą mieć oczywiste konstruktory bezparametrowe, ale Struktury nie mogą





7. Nowe słowo kluczowe musi zostać instancjonowane przed użyciem klasy, a Struct nie jest tego potrzebny




8. Klasa wspiera dziedziczenie i polimorfizm, Struktur nie. Uwaga: Ale Struct może implementować interfejsy tak samo jak klasy

9. Ponieważ Struct nie obsługuje dziedziczenia, jego członkowie nie mogą być modyfikowani przez chronione lub chronione Internal

10. Konstruktor Class nie musi inicjalizować wszystkich pól, a konstruktor Struct musi inicjalizować wszystkie pola







11. Klasa może zdefiniować niszczyciela, ale Struktura nie może

12. Klasa nadaje się do dużych i złożonych danych, a Struct do nowych typów, które często są używane jako połączenie niektórych danych.



Przydatne okazje: Struct ma przewagi wydajnościowe, a Class ma zalety obiektowych rozszerzeń.

Typ używany dla bazowego magazynu danych jest zaprojektowany jako typ Struktur, a typ używany do definiowania zachowania aplikacji to Klasa. Jeśli nie jesteś pewien przyszłego zastosowania tego typu, powinieneś użyć Class.




Poprzedni:Alipay RSA do generowania klucza prywatnego i klucza publicznego jednym kliknięciem
Następny:C# odwróć klasę pomocy MySQL, zapisz ją
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