IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 12. diel - List vo Visual Basic .NET

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
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ě

Odpovedať
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.

 
Odpovedať
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í

Odpovedať
3.7.2016 10:00
statik
Avatar
Odpovedá 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.

 
Odpovedať
3.7.2016 10:06
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Odpovedá 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/

Odpovedať
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

Odpovedať
3.7.2016 16:14
statik
Avatar
Odpovedá 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.

 
Odpovedať
3.7.2016 20:52
Avatar
Odpovedá 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š.

 
Odpovedať
3.7.2016 20:59
Avatar
Odpovedá 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))
Editované 3.7.2016 21:02
 
Odpovedať
3.7.2016 21:02
Avatar
Jaroslav Trojan
Tvůrce
Avatar
Odpovedá na Michal Žůrek - misaz
Jaroslav Trojan:4.7.2016 19:10

už jsem to opravil, kód funguje

Odpovedať
4.7.2016 19:10
statik
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!