| |
VB.NET - Ein- und UmsteigerUmwandlung 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. | |
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
| |
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. | |
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 | |
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 | |
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. | |
| 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 |
|
|
Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
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
|
|