vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Umwandlung von Object in T-Array 
Autor: sv00010
Datum: 18.12.14 21:05

Ich bekomme es aus irgendeinem Grund nicht hin und brauche Hilfe.

Ich habe eine Variable vom Typ Object, in welchem ein Array drin ist.
Die Konvertierung dieser Object-Variable (mit dem Array darin)
in ein normales Array vom Typ T bekomme ich nicht hin.
Kann mir bitte jemand zeigen, wie es geht?
0

Beitrag wurde zuletzt am 18.12.14 um 21:06:28 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Umwandlung von Object in T-Array 
Autor: Christoph1972
Datum: 18.12.14 21:17

Hi,

meinst du das so?
Dim array As String() = {"1", "2", "3"}
Dim t As Object = DirectCast(array, Object)
 
Dim castArray As String() = TryCast(t, String())

Gruß
Christoph

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Umwandlung von Object in T-Array 
Autor: sv00010
Datum: 18.12.14 21:35

Mit T-Array meinte ich ein generisches Array, welches als T deklariert wird.
Die Umwandlung soll mit mehreren Datentypen funktionieren.

Sub Beispiel(Of T)(ByVal ValueIN As T)
 Dim objValue As Object = Nothing
 
'Aufruf der Routine welche in objValue das Array füllt.
 
'Hier muss ich jetzt den objValue in ein normales Array vom Typ T umwandeln.
 
End Sub
0

Beitrag wurde zuletzt am 18.12.14 um 21:44:27 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Umwandlung von Object in T-Array 
Autor: Manfred X
Datum: 19.12.14 10:10

Hallo!

Erkläre genauer Deine Zielsetzung.
Wofür benötigst Du eine Object-Variable?

Erstelle zunächst ein Array vom Typ T und fülle es.
Weise eine Referenz auf dieses Array der Object-Variable zu.

Um danach über diese Object-Variable wieder auf das referenzierte
Array zuzugreifen, kannst Du cType/DirectCast etc. nutzen.

So vielleicht ...
    Sub Beispiel(Of T)(ByVal ValueIN As T)
        Dim objValue As Object = Nothing
 
        'Aufruf der Routine welche in objValue das Array füllt.
 
        Dim iarr(10) As T
        iarr(5) = ValueIN
 
        objValue = iarr
 
        'Hier muss ich jetzt den objValue in ein normales Array vom Typ T 
        ' umwandeln.
        Dim el As T = DirectCast(objValue, T())(5)
 
    End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Umwandlung von Object in T-Array 
Autor: sv00010
Datum: 19.12.14 12:45

Manfred X schrieb:
Zitat:

Hallo!

Erkläre genauer Deine Zielsetzung.
Wofür benötigst Du eine Object-Variable?

Ich habe mir zum Testen ein typisiertes Dataset erstellt.
Dort habe ich Spalten vom Typ System.String() erstellt.
Das zuweisen der Arrays hat auch funktioniert.
Jetzt will ich mit
objValueOUT = DataRowIN(strColumnNameIN)
aus einer DataRow ein Array vom Typ T einlesen.
Das Umwandeln in ein normales Array verursacht dann eine Exception.

0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Umwandlung von Object in T-Array 
Autor: Manfred X
Datum: 19.12.14 13:03

Welcher Datentyp ist in der Variable objValueOut enthalten?
(= Was liefert DataRowIn zurück?)

Nur diesen Typ (oder den zugrundeliegenden Base-Typ) kannst Du casten.
T ist kein Typ, sondern T repräsentiert Typen.
(Ich vermute, du erhälst die Array-Elemente als Objects zurück und mußt
sie einzeln als String casten.)

Um bei einem T-Parameter Konvertierungen vornehmen zu können,
ist bei dessen Definition ein Schnittstellen-Constraint (z.B. Iconvertible)
erforderlich. Durch diese Einschränkung wird festgelegt, welche Umwandlungen
ein Datentyp implementieren muß, damit er vom generischen Parameter akzeptiert
werden kann.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel