La liaison tardive et Option Strict
J'ai ce problème avec la liaison tardive: je suis entrain de créer une liste d'épicerie de l'application. J'ai une classe nommée Item
qui stocke les name
, price
, quantity
, et description
d'un élément sur la liste d'épicerie.
J'ai un module nommé ListCollection
qui définit un Collection
de Item
objets. J'ai créé un Edit
formulaire qui s'affiche automatiquement sélectionné ListCollection
propriétés de l'élément, mais à chaque fois que je tente de remplir les zones de texte, il me dit que Option Strict
interdit la liaison tardive.
Que j'ai PU prendre la voie facile et désactiver Option Strict
, mais je préfère comprendre ce que le problème est que je sais pour référence future.
Je ne collez code ici. (Liaison tardive erreur est dans EditItem.vb
.)
Élément.code visual basic:
' Member variables:
Private strName As String
' Constructor
Public Sub New()
strName = ""
' Name property procedure
Public Property Name() As String
Get
Return strName
End Get
Set(ByVal value As String)
strName = value
End Set
End Property
Ensembliste.code visual basic:
' Create public variables.
Public g_selectedItem As Integer ' Stores the currently selected collection item.
' Create a collection to hold the information for each entry.
Public listCollection As New Collection
' Create a function to simplify adding an item to the collection.
Public Sub AddName(ByVal name As Item)
Try
listCollection.Add(name, name.Name)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
EditItem.code visual basic:
Private Sub EditItem_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Set the fields to the values of the currently selected ListCollection item.
txtName.Text = ListCollection.listCollection(g_selectedItem).Name.Get ' THIS LINE HAS THE ERROR!
J'ai essayé de déclarer une String
variables et affectation de la Item
bien, et j'ai également essayé le saisissant directement la valeur de la List
élément (et non à l'aide de la Get
fonction), et aucune de ces fait une différence.
Comment puis-je résoudre ce problème?
Vous devez vous connecter pour publier un commentaire.
Vous devez jeter l'élément de "l'Objet" de votre type ("EditItem").
http://www.codeproject.com/KB/dotnet/CheatSheetCastingNET.aspx
EDIT:
Je n'ai pas de code tout en VB.NET pendant des années, j'espère que c'est tout droit.
Dim o As Object = 7
DepuisString
est un type de référence, pas de boxe est requis ou utilisés.