User-Defined Data Type

Przechowuje dane w zdefiniowanym formacie. Instrukcja Structure definiuje format.

Poprzednie wersje języka Visual Basic obsługują typ zdefiniowany przez użytkownika (UDT). Bieżąca wersja rozszerza udT na strukturę. Struktura jest łączeniem co najmniej jednego członka różnych typów danych. Visual Basic traktuje strukturę jako pojedynczą jednostkę, chociaż można również uzyskać dostęp do jej elementów członkowskich indywidualnie.

Uwagi

Zdefiniuj typ danych struktury i użyj go, gdy musisz połączyć różne typy danych w jedną jednostkę lub gdy żaden z podstawowych typów danych nie spełnia Twoich potrzeb.

Wartość domyślna typu danych struktury składa się z kombinacji wartości domyślnych każdego z jego elementów członkowskich.

Format deklaracji

Deklaracja struktury rozpoczyna się od instrukcji Structure i kończy się instrukcją End Structure . Instrukcja Structure dostarcza nazwę struktury, która jest również identyfikatorem typu danych definiowanego przez strukturę. Inne części kodu mogą używać tego identyfikatora do deklarowania zmiennych, parametrów i zwracanych wartości funkcji jako typu danych tej struktury.

Deklaracje między instrukcjami Structure i End Structure definiują elementy członkowskie struktury.

Poziomy dostępu do składowych

Należy zadeklarować każdy element członkowski przy użyciu instrukcji Dim lub instrukcji, która określa poziom dostępu, taki jak Publiczny, Przyjaciel lub Prywatny. Jeśli używasz instrukcji Dim , poziom dostępu jest domyślnie ustawiony na publiczny.

porady dotyczące programowania

  • Zużycie pamięci. Podobnie jak w przypadku wszystkich typów danych złożonych, nie można bezpiecznie obliczyć całkowitego zużycia pamięci struktury przez dodanie nominalnych alokacji magazynu jej elementów członkowskich. Ponadto nie można bezpiecznie założyć, że kolejność przechowywania w pamięci jest taka sama jak kolejność deklaracji. Jeśli musisz kontrolować układ magazynu struktury, możesz zastosować StructLayoutAttribute atrybut do instrukcji Structure .

  • Zagadnienia dotyczące międzyoperacyjności. Jeśli łączysz się ze składnikami, które nie są napisane dla programu .NET Framework, na przykład w przypadku obiektów Automation lub COM, pamiętaj, że typy zdefiniowane przez użytkownika w innych środowiskach nie są zgodne z typami struktury Języka Visual Basic.

  • Poszerzenie. Nie ma automatycznej konwersji na lub z dowolnego typu danych struktury. Operatory konwersji można zdefiniować w strukturze przy użyciu instrukcji operatora, a każdy operator konwersji można zadeklarować jako Widening lub Narrowing.

  • Wpisz znaki. Typy danych struktury nie mają znaku typu literału ani typu identyfikatora.

  • Typ struktury. W programie .NET Framework nie ma odpowiedniego typu. Wszystkie struktury dziedziczą z klasy System.ValueType.NET Framework , ale żadna pojedyncza struktura nie odpowiada .System.ValueType

Przykład

Poniższy paradygmat przedstawia zarys deklaracji struktury.

[Public | Protected | Friend | Protected Friend | Private] Structure structname
    {Dim | Public | Friend | Private} member1 As datatype1
    ' ...
    {Dim | Public | Friend | Private} memberN As datatypeN
End Structure

Zobacz też