Porady: przypisywanie tablicy do innej tablicy (Visual Basic)
Ponieważ tablice są obiektami, można ich używać w instrukcjach przypisania, takich jak inne typy obiektów. Zmienna tablicowa przechowuje wskaźnik do danych tworzących elementy tablicy oraz informacje o klasyfikacji i długości oraz kopiuje tylko ten wskaźnik.
Aby przypisać jedną tablicę do innej tablicy
Upewnij się, że dwie tablice mają tę samą rangę (liczbę wymiarów) i zgodne typy danych elementów.
Użyj standardowej instrukcji przypisania, aby przypisać tablicę źródłową do tablicy docelowej. Nie należy przestrzegać żadnej nazwy tablicy z nawiasami.
Dim formArray() As System.Windows.Forms.Form Dim controlArray() As System.Windows.Forms.Control controlArray = formArray
Po przypisaniu jednej tablicy do innej obowiązują następujące reguły:
Równe rangi. Ranga (liczba wymiarów) tablicy docelowej musi być taka sama jak w przypadku tablicy źródłowej.
Pod warunkiem, że rangi dwóch tablic są równe, wymiary nie muszą być równe. Liczba elementów w danym wymiarze może ulec zmianie podczas przypisywania.
Typy elementów. Obie tablice muszą mieć elementy typu odwołania lub obie tablice muszą mieć elementy typu wartości. Aby uzyskać więcej informacji, zobacz Typy wartości i typy referencyjne.
Jeśli obie tablice mają elementy typu wartości, typy danych elementu muszą być dokładnie takie same. Jedynym wyjątkiem jest to, że można przypisać tablicę elementów do tablicy
Enum
typu podstawowego tegoEnum
typu .Jeśli obie tablice mają elementy typu odwołania, typ elementu źródłowego musi pochodzić z typu elementu docelowego. W takim przypadku obie tablice mają taką samą relację dziedziczenia, jak ich elementy. Jest to nazywane kowariancją tablicy.
Kompilator zgłasza błąd, jeśli powyższe reguły zostaną naruszone, na przykład jeśli typy danych nie są zgodne lub klasyfikacje są nierówne. Możesz dodać obsługę błędów do kodu, aby upewnić się, że tablice są zgodne przed podjęciem próby przypisania. Możesz również użyć słowa kluczowego TryCast Operator , jeśli chcesz uniknąć zgłaszania wyjątku.