vb.net - 如何将结构的实例显示为字符串 vb.net?
问题描述
我的目标是能够在Structure
不使用 a 的情况下将 a 作为收据打印出来SortedList
。
结构:
Private Structure Facture
Dim noClient As String
Dim nom As String
Dim prenom As String
Dim adresse As String
Dim ville As String
Dim province As String
Dim codePostal As String
Dim courriel As String
Dim noTel As String
Dim noProduit As String
Dim marque As String
Dim modele As String
Dim annee As String
Dim couleur As String
Dim categorie As String
Dim noSerie As String
Dim prix As String
Dim dateVente As String
End Structure
结构实例:
Private Function getFacture(ByVal ID As Integer) As Facture
Dim receipt As Facture
receipt.noClient = mtxtNoClient.Text
receipt.nom = txtNom.Text
receipt.prenom = txtPrenom.Text
receipt.adresse = txtAdresse.Text
receipt.ville = txtVille.Text
receipt.province = CboProvince.Text
receipt.codePostal = mtxtCodePostal.Text
receipt.courriel = txtCourriel.Text
receipt.noTel = mtxtNoTel.Text
receipt.noProduit = mtxtNoProduit.Text
receipt.marque = txtMarque.Text
receipt.modele = txtModele.Text
receipt.annee = mtxtAnnee.Text
receipt.couleur = txtCouleur.Text
receipt.categorie = txtCategorie.Text
receipt.noSerie = txtNoSerie.Text
receipt.prix = mtxtPrix.Text
receipt.dateVente = dtpickerDateVente.Text
Return (receipt)
End Function
我需要在一个字符串数组旁边打印它。
格式:
Private Sub btnAfficherVente_Click(sender As Object, e As EventArgs) Handles btnAfficherVente.Click
' gotta read each line and print them as toString formatted for facturation
Dim infoProduit As String() = New String() {"No de client:", "Nom:", "Prénom:", "Adresse:", "Ville:", "Province:", "Code Postal:", "Courriel:", "Téléphone:",
"No de produit:", "Marque:", "Modèle:", "Année:", "Couleur:", "Catégorie:", "No de série:", "Prix:", "Date de vente:"}
'Output in facturation formatted text
Dim i As Integer = 0
Do While i < infoProduit.Length
If i = 9 Then
txtFacturation.Text += vbCrLf + "==============================================" + vbCrLf
End If
txtFacturation.Text += String.Format("{0, -20}", infoProduit(i)) & vbTab & getFacture(i).ToString & vbCrLf
i += 1
Loop
End Sub
输出:
我查看了有关 StackOverflow 的文档和多个问题。大多数答案都是关于使用Dictionnary
,Collection
或SortedList
.
在文档中,我发现的唯一一件事是覆盖ToString()
in Structure
,这对我不起作用,因为这意味着我必须单独格式化它们,ToString
但这会弄乱最终输出,因为我必须将它打印在一个 Array 旁边字符串。
解决方案
我会使用类而不是结构。但是您需要在结构中使用一个方法来返回所需的文本。
Private Structure Facture
Dim noClient As String
Dim nom As String
Dim prenom As String
Dim adresse As String
Dim ville As String
Dim province As String
Dim codePostal As String
Dim courriel As String
Dim noTel As String
Dim noProduit As String
Dim marque As String
Dim modele As String
Dim annee As String
Dim couleur As String
Dim categorie As String
Dim noSerie As String
Dim prix As String
Dim dateVente As String
Function obtenirFactureTexte() As String
Dim resultat As String = ""
resultat &= "No de client: " & noClient & vbCrLf
resultat &= "Nom: " & nom & vbCrLf
resultat &= "Prénom: " & prenom & vbCrLf
' ...
Return resultat
End Function
End Structure
Sub Main()
Dim nouvelleFacture As New Facture
nouvelleFacture.noClient = "123"
nouvelleFacture.nom = "Lagare"
nouvelleFacture.prenom = "Bob"
Console.Write(nouvelleFacture.obtenirFactureTexte())
End Sub
然后,您可以使用该方法在任何地方输出结果。
txtFacturation.Text = getFacture(i).obtenirFactureTexte()
推荐阅读
- vue.js - 在 Vue 中动态导入 fontawesome 图标
- django - django 不在 html 中呈现模板,而是在浏览器上呈现普通文本文件
- flutter - 如何纠正错误 DatabaseException (near ")": 语法错误
- r - 在 R 的线性模型中正确使用月份作为一个因素
- php - 我的搜索脚本正在查找不应该的地址行
- python-3.x - 用于分类的自动编码器 2 潜在空间
- python - 如何从多个列表中创建一列?
- css - 我希望链接在鼠标悬停时响应,而不是在空白处
- docker - 在 ubuntu 18.04 上升级后,docker tensorflow/gpu 镜像无法运行
- spring-boot - 如何在表中只存储 10 行