Struct

0

Czy typ wartościowy struct może mieć pola chronione?

0

A po co? :)

0

Jak trudne bądź czasochłonne jest przetestowanie tego? :|

0

To pewnie minuta na sprawdzenie :) A tak poz tym to struktury są domyślnie sealed, więc protected średnio miałby tu co robić ;)

0

"Struct members can have public, internal, or private declared accessibility and default to
private declared accessibility because structs are implicitly sealed. Struct members introduced in a
struct (that is, not inherited by that struct) cannot have protected or protected internal
declared accessibility. [Note: A type declared as a member of a struct can have public, internal, or
private declared accessibility, whereas a type declared as a member of a namespace can have only
public or internal declared accessibility."

Struktura to klasa niejawnie zapieczętowana dziedzicząca po [mscorlib]System.ValueType
, po której nie można dziedziczyć. Dlatego niepotrzebny jest już modyfikator protected
Struktura jest przechowywana mówiąc w uproszczeniu - na stosie . Kopiowana jest przez wartość .
i taka ściąga :

  1. Zmienne lokalne
    a) - przechowujące egzemplarze typów wartościowych są przechowywane na stosie

b) - przechowujące referencje do typów referencyjnych są przechowywane na stosie

  1. Pola
    a) - pola struktur przechowujące referencje do typów referencyjnych i egzemplarze typów wartościowych są przechowywane na stosie
    b) - pola klas przechowujące referencje do typów referencyjnych i egzemplarze typów wartościowych są przechowywane są na stercie

  2. Parametry
    a) - parametry funkcji przechowujące referencje do typów referencyjnych i egzemplarze typów wartościowych są przechowywane na stosie.

    • Elementy tablic
      a) elementy tablic przechowujące referencje do typów referencyjnych i egzemplarze typów wartościowych
      są przechowywane na stercie
0
Zimny Krawiec napisał(a):

Struktura to klasa

Struktura to nie klasa, to wręcz przeciwieństwo klasy.

0

W sumie to masz rację . Mamy język C# i CLI . W CLI klasa ma trochę szersze znaczenie .
screenshot-20180914140402.png

0

Ma ogromne znaczenie, bo wprowadzasz ludzi w błąd.

Struktura to struktura, klasa to klasa, interfejs to interfejs, delegat to delegat, a wskaźnik to wskaźnik. To są zupełnie różne rzeczy, co je łączy to to, że wszystkie one są typami. Hierarchia dziedziczenia w .NET to odrębny temat niż koncepcje z języka.

0
somekind napisał(a):

Ma ogromne znaczenie, bo wprowadzasz ludzi w błąd.

Struktura to struktura, klasa to klasa, interfejs to interfejs, delegat to delegat, a wskaźnik to wskaźnik. To są zupełnie różne rzeczy, co je łączy to to, że wszystkie one są typami. Hierarchia dziedziczenia w .NET to odrębny temat niż koncepcje z języka.

OK OK . W języku CLI KLASA ma takie znaczenie jak TYP . Jak zwał tak zwał . Wiadomo o co chodzi

"For historical reasons, many of the syntactic categories used for defining types incorrectly
use “class” instead of “type” in their name. All classes are types, but “types” is a broader term
encompassing value types, and interfaces as well."

1 użytkowników online, w tym zalogowanych: 0, gości: 1