Gå til innhold

Forenkling av Arrays


Gjest Slettet-aNZFa3

Anbefalte innlegg

Gjest Slettet-aNZFa3

Jag har da foreløpelig 2 Arrays som er deklaret som Object, jeg har da noe Varabler som er knyttet til disse, men det kan hende at jeg skal ha 100 nesten identiske arrays, så hvordan kan jeg forenkle disse? (kode nedenfor)

 

'Game1:

    Public Game1(11) As Object

    Public GameName1 As String = Game1(0)

    Public Genre1 As String = Game1(1)

    Public Platform1 As String = Game1(2)

    Public Gameplay As String = Game1(3)

    Public Graphic As String = Game1(4)

    Public AgeLimit As Integer = Game1(5)

    Public Multiplayer As Boolean = Game1(6)

    Public MMO As Boolean = Game1(7)

    Public MapEditor As Boolean = Game1(8)

    Public GameEditor As Boolean = Game1(9)

    Public Cutscenes As Boolean = Game1(10)

    Public ModMaker As Boolean = Game1(11)

    'Game2:

    Public Game2(11) As Object

    Public GameName2 As String = Game1(0)

    Public Genre2 As String = Game1(1)

    Public Platform2 As String = Game1(2)

    Public Gamepla2 As String = Game1(3)

    Public Graphi2 As String = Game1(4)

    Public AgeLimi2 As Integer = Game1(5)

    Public Multiplaye2 As Boolean = Game1(6)

    Public MM2 As Boolean = Game1(7)

    Public MapEditor2 As Boolean = Game1(8)

    Public GameEditor2 As Boolean = Game1(9)

    Public Cutscenes2 As Boolean = Game1(10)

    Public ModMaker2 As Boolean = Game1(11)

 

EDIT: jeg har også litt problemer med å adde items til en ListBox

 

GamesLst.Items.Add(Game1)

        GamesLst.Items.Add(Game2)

 

Det eneste jeg får opp i ListBox'en er "Object()Array"

Endret av Slettet-aNZFa3
Lenke til kommentar
Videoannonse
Annonse

Legg variablene i en klasse og deklarer den to ganger:

Public Class Games

    Public Game As New List(Of Game)

   

    Public Sub New()

        ' Eller noe sånt

        Game.Add(New Game)

        Game.Add(New Game)

    End Sub

End Class

 

Public Class Game

    Public GameName As String

    Public Genre As String

    Public Platform As String

    Public Gameplay As String

    Public Graphic As String

    Public AgeLimit As Integer

    Public Multiplayer As Boolean

    Public MMO As Boolean

    Public MapEditor As Boolean

    Public GameEditor As Boolean

    Public Cutscenes As Boolean

    Public ModMaker As Boolean

End Class

Endret av aadnk
Lenke til kommentar
Det eneste jeg får opp i ListBox'en er "Object()Array"

9251623[/snapback]

Jeg regner med du kun ønsker å skrive ut et enkelt element i listeboksen (eller ville du vel benyttet en DataGrid)? I så fall kan du A) Endre til Game1.GameName i koden eller B) overloade ToString() til å returnere ønsket tekstrepresentasjon.
Lenke til kommentar
Gjest Slettet-aNZFa3
Det eneste jeg får opp i ListBox'en er "Object()Array"

9251623[/snapback]

Jeg regner med du kun ønsker å skrive ut et enkelt element i listeboksen (eller ville du vel benyttet en DataGrid)? I så fall kan du A) Endre til Game1.GameName i koden eller B) overloade ToString() til å returnere ønsket tekstrepresentasjon.

9252135[/snapback]

 

Når du nevner DataGrid så er det vel bedre å bruke det? Så har du en guide som viser meg hvordan jeg får arrrays til DataGrid, eller kan du lære meg det?

Lenke til kommentar

La meg eksemplifisere med dette spillobjektet ditt. Først, konverter feltene til egenskaper. Dernest, bruk en array (dette er nødvendig ettersom en liste ikke støtter IList, merkelig nok) og legg inn en DataGridView-kontroll. Endelig limer du inn følgende kode:

Klikk for å se/fjerne innholdet nedenfor
Public Class Form1

    ' Initialiserer to elementer i arrayen (objektet må implementer IList)

    Dim Games() As Game = New Game() {New Game, New Game}

 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        ' Laster inn datakilden

        DataGridView1.DataSource = Games

    End Sub

End Class

 

' Dessverre må en anvende egenskaper for at DataSource skal kunne lese informasjonen. Akk, jeg virkelig hater notasjonen

' for egenskaper i VB.NET. Altfor ordrik.

Public Class Game

    Private m_GameName As String

    Private m_Genre As String

    Private m_Platform As String

    Private m_Gameplay As String

    Private m_Graphic As String

    Private m_AgeLimit As Integer

    Private m_Multiplayer As Boolean

    Private m_MMO As Boolean

    Private m_MapEditor As Boolean

    Private m_GameEditor As Boolean

    Private m_Cutscenes As Boolean

    Private m_ModMaker As Boolean

 

    Public Property GameName() As String

        Get

            Return m_GameName

        End Get

        Set(ByVal value As String)

            m_GameName = value

        End Set

    End Property

 

    Public Property Genre() As String

        Get

            Return m_Genre

        End Get

        Set(ByVal value As String)

            m_Genre = value

        End Set

    End Property

 

    Public Property Platform() As String

        Get

            Return m_Platform

        End Get

        Set(ByVal value As String)

            m_Platform = value

        End Set

    End Property

 

    Public Property Gameplay() As String

        Get

            Return m_Gameplay

        End Get

        Set(ByVal value As String)

            m_Gameplay = value

        End Set

    End Property

 

    Public Property AgeLimit() As Integer

        Get

            Return m_AgeLimit

        End Get

        Set(ByVal value As Integer)

            m_AgeLimit = value

        End Set

    End Property

 

    Public Property Multiplayer() As Boolean

        Get

            Return m_Multiplayer

        End Get

        Set(ByVal value As Boolean)

            m_Multiplayer = value

        End Set

    End Property

 

    Public Property MMO() As Boolean

        Get

            Return m_MMO

        End Get

        Set(ByVal value As Boolean)

            m_MMO = value

        End Set

    End Property

 

    Public Property MapEditor() As Boolean

        Get

            Return m_MapEditor

        End Get

        Set(ByVal value As Boolean)

            m_MapEditor = value

        End Set

    End Property

 

    Public Property GameEditor() As Boolean

        Get

            Return m_GameEditor

        End Get

        Set(ByVal value As Boolean)

            m_GameEditor = value

        End Set

    End Property

 

    Public Property Cutscenes() As Boolean

        Get

            Return m_Cutscenes

        End Get

        Set(ByVal value As Boolean)

            m_Cutscenes = value

        End Set

    End Property

 

    Public Property ModMaker() As Boolean

        Get

            Return m_ModMaker

        End Get

        Set(ByVal value As Boolean)

            m_ModMaker = value

        End Set

    End Property

End Class

Endret av aadnk
Lenke til kommentar
  • 2 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...