Hledáš dárek, který neskončí v koši? Nyní 90 % extra kreditů ZDARMA s promo kódem PREKVAPENI90. Zjisti více:
NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Diskuze – Lekce 12 - List ve Visual Basic .NET

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Nejnovější komentáře jsou na konci poslední stránky.
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Jaroslav Trojan:3.7.2016 9:40

tento kód nefunguje:

Dim 1 As New List(Of String)
1.Add("První")
Console.WriteLine(1 (0))
1(0)="První položka"
Console.Writeline(1 (0))
1(1)="Druhá položka" 'vyhodí chybu

musel jsem ho upravit takto:

Dim list As New List(Of String)
list.Add("První")
Console.Write­Line(list(0))
list(0)="První položka"
Console.Write­Line(list(0))
list(1)="Druhá položka" 'vyhodí chybu

a tento kód jde bezvadně

Odpovědět
statik
Avatar
Michal Žůrek - misaz:3.7.2016 9:51

v tom článku totiž není 1 (jedna), ale malé L.

Avatar
Jaroslav Trojan
Tvůrce
Avatar
Jaroslav Trojan:3.7.2016 10:00

Rovněž další kód hlásí chybu:

Dim poleStringu As String={"První","­Druhá","Třetí"}
Dim 1 As New List(Of String) (poleStringu)
Console.Write­Line(1(2))

ve druhém řádku hlásí chybu: Value of type 'List(Of String)' cannot be converted to String
ten řádek jsem vyřadil a napsal kód:

Dim poleStringu As String={"První","­Druhá","Třetí"}
Console.Write­Line(poleStrin­gu.Last())
Console.ReadKey()

tento kód jde bezvadně, vypíše: Třetí

Odpovědět
statik
Avatar
Odpovídá na Jaroslav Trojan
Michal Žůrek - misaz:3.7.2016 10:06

ten kód funguje, opět tam ale není jedna, ale malé L. Jméno proměnné nemůže začínat číslem, proto je název 1 (jedna) nesmysl.

Avatar
Jaroslav Trojan
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Jaroslav Trojan:3.7.2016 15:45

i když tam dám to malé l ,tak to hlásí stejnou chybu
jako předtím/ viz výše/

Odpovědět
statik
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Jaroslav Trojan:3.7.2016 16:14

proč nejde tento kód:

Module Module1
Public jmeno As String
Public vek As Integer
Public heslo As String
Sub Main()
Dim u As New Uzivatel("Olda Novák", 87, "dům")
Dim a As New Administrator("Jar­da Trojan", 80, "bukovka")
'Dim u As Uzivatel = New Administrator("Jar­da Trojan", 80, "bukovka")
' u = a
' a = u
If TypeOf u Is Administrator Then
Console.Write­Line("je to administrator")
Else
Console.Write­Line("je to uživatel")
End If
Console.Write­Line(u)

Console.Write­Line(a)
Console.WriteLine()
' Uzivatel.Vypis(jme­no,vek,heslo)
Console.Write­Line(Uzivatel­.Vypis(jmeno, vek, heslo))
Console.ReadKey()
End Sub

End Module

třída Uzivatel

Public Class Uzivatel
Public jmeno As String
Public vek As Integer
Public heslo As String

Public Sub New(jmeno As String, vek As Integer, heslo As String)
Me.jmeno = jmeno
Me.vek = vek
Me.heslo = heslo
End Sub

Public Overrides Function ToString() As String
Return jmeno
Return vek
Return heslo
End Function
Public Function Vypis(jmeno, vek, heslo)
Console.Write­Line(jmeno, vek, heslo)
End Function

End Class

Odpovědět
statik
Avatar
Odpovídá na Jaroslav Trojan
Michal Žůrek - misaz:3.7.2016 20:52
Dim poleStringu As String={"První","Druhá","Třetí"}
Dim l As New List(Of String) (poleStringu)
Console.WriteLine(l(2))

mě to funguje, otestoval jsem to. Podívej se jakou verzi .NET framework máš nastavenou při vytváření projektu. Je dost možné že starší verze něco z toho neumí. Práce s generickými kolekcemi se napříč verzemi trochu měnila.

Avatar
Odpovídá na Jaroslav Trojan
Michal Žůrek - misaz:3.7.2016 20:59

nemáš tam označený komentář Třída Uzivatel. Nikde tam nevidím třídu Administrator, kterou se snažíš používat. Metoda Uzivatel.Vypis je nesmysl. Třída Uzivatel nemá žádnou statickou metodu Vypis. Tu musíš volat na instanci, kterou chceš vypsat. Nějak zvláštně máš napsané WriteLine, když si to zkopíruju do notepad++ tak mi to tam z nějakého důvodu dosadí pomlčku Write-Line. Na úvod se podívej do místních tutoriálu OOP, tam najdeš odpovědi na vše co momentálně potřebuješ.

Avatar
Odpovídá na Michal Žůrek - misaz
Michal Žůrek - misaz:3.7.2016 21:02

ups. Teď se dívám, že ten kód fakt nefunguje, protože tam chybí závorky definující že poleStringu je pole.

Dim poleStringu As String() = {"První", "Druhá", "Třetí"}
Dim l As New List(Of String)(poleStringu)
Console.WriteLine(l(2))
Editováno
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Jaroslav Trojan:4.7.2016 19:10

už jsem to opravil, kód funguje

Odpovědět
statik
Nejnovější komentáře jsou na konci poslední stránky.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 16.