VB 6 to VB 2008   otázka

VB.NET

Ahoj, ve vb6 šlo udělat vlastní datové typy proměnných, které byli o indexované. Nevíte jak to napsat ve vb 2008.

REM VB 6 Code Priklad
Type HlavniProm
    PromA As String
    PromB As Integer
    PromC(5) As String
End Type

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nevím přesně co myslíte, ve VB6 jsem nikdy nedělal, navíc váš popis je dosti strohý, ale přesto, nemáte namysli struktury? Přečtěte si o nich něco :-)

http://www.vbdotnetheaven.com/UploadFile...

V praxi to vypadá nějak takto:

Structure HlavniProm
Public PromA As String
Public PromB As Integer
PromC(5) as String
End Structure

Použití je celkem jednoduché:

'Vytvoříme instanci
HlavniProm prom As New HlavniProm()

prom.PromA = "Ahoj, jak se máte?";

Console.WriteLine(prom.PromA);

Možná, že jsou tam nějaké syntaktické chyby, neprogramuji ve VB.NET

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Myslím, že som ich zopár našiel. "PromC(5) as String" neobsahuje modifikátor prístupu(či ako sa to volá? - Public, Protected, Private, Friend).V tomto prípade je nutné použiť Dim. A VB.NET nie je síce case-sensitive, takže to nie je syntaktická chyba, ale je obvyklé písať As, nie as, ako to máte pri poli PromC. Za druhé, v C# sa riadky(resp. samostatné príkazy) zakončujú ;, vo VB.NET nie, naopak sa v prípade rozdelenia na viac riadkov každý riadok okrem posledného zakončuje " _", píše sa to bez uvodzoviek a má tam byť aj tá medzera. A nakoniec sa vždy píše najprv názov premennej, potom jej typ.

Čiže predpokladám, že správne je to takto:

Structure HlavniProm
  Public PromA As String
  Public PromB As Integer
  Public PromC(5) As String
End Structure

REM Túto časť musíte vložiť do nejakej metódy(t.j. funkcie alebo procedúry)
Dim prom As HlavniProm REM na štruktúru netreba volať 
REM konštruktor(aspoň myslím)

prom.PromA = "Ahoj, jak se máte?"
Console.WriteLine(prom.PromA)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Inak, pole sa dá vo VB.NET definovať dvoma spôsobmi.

Dim pole As String()

Je obyčajné pole,a pokiaľ sa nemílim, je nutné ho inicializovať pomocou New.

Dim pole(2) As String

Je trošku svojské pole s max. indexom 2(3 prvky). Dá sa zmeniť jeho veľkosť pomocou Redim.

ReDim pole(8) REM zmení max. index na 8 ale vymaže všetky prvky
ReDim Preserve pole(8) REM zachová pôvodné prvky

Každopádne ak zmenšujete pole pomocou ReDim Preserve, nie je možné zachovať tie prvky, ktorých index v starom poli je väčší ako nový max. index. Tie sa do nového poľa nezmestia, takže ich to zahodí.Ak pole zväčšujete pomocou ReDim Preserve, zachová všetky prvky a zároveň vytvorí miesto pre ďalšie prvky.

POZOR: Nie je možné tieto dva spôsoby kombinovať:

Dim pole(2) As String() REM Syntaktická chyba

A ak predávauviesť zátvorky pri datovom type, nie pri názve parametra.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback