NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!

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
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
3.7.2016 9:40
statik
Avatar
Michal Žůrek - misaz:3.7.2016 9:51

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

 
Odpovědět
3.7.2016 9:51
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
3.7.2016 10:00
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.

 
Odpovědět
3.7.2016 10:06
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
3.7.2016 15:45
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
3.7.2016 16:14
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.

 
Odpovědět
3.7.2016 20:52
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š.

 
Odpovědět
3.7.2016 20:59
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 3.7.2016 21:02
 
Odpovědět
3.7.2016 21:02
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
4.7.2016 19:10
statik
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.