新手问题:我该如何创建一个类在Visual Basic Studio来保存数据?(Newbie qu

2019-09-30 09:18发布

我真的很抱歉。 这必须看起来像一个令人难以置信的愚蠢的问题,但除非我要求我永远也不会弄明白。 我试图写一个程序在Visual Basic中的CSV文件读取(尝试和放弃了对C#),我问我的一个朋友,谁是在编程更比我好。 他说我应该创建一个类来保存我在读取数据。

问题是,我从来没有创建一个类之前,而不是在VB,Java或任何东西。 我知道与类相关联的所有条款,我在一个较高的水平理解类如何工作没有问题。 但我吸在做一个实际的细节。

因此,这里是我所做的:

Public Class TsvData

    Property fullDataSet() As Array

        Get
            Return ?????
        End Get

        Set(ByVal value As Array)

        End Set

    End Property

End Class

我得到尽可能的问号,我被卡住。 该班将举办大量的数据,所以我做了一个数组。 这可能是一个糟糕的举动。 我不知道。 我所知道的是,它不能是一个字符串,它当然不能是整数或浮点数。

至于getter和setter,我之所以把问号是因为我想整个阵列有回报。 该类最终将有其他的性能,这是基本相同的数据的排列,但是这是一整套的时候我要救出来或东西,我会用。 现在我想回到整个数组,但输入“返回fullDataSet()”似乎不是一个好主意。 我的意思是,属性的​​名称是“fullDataSet()。” 它只是将做出某种循环。 但没有其他数据返回。

我应该暗淡内的财产又一个阵列,这已经是一个数组,并返回呢?

Answer 1:

通常你用一个私有成员来存储的实际数据:

Public Class TsvData
Private _fullDataSet As String()
Public Property FullDataSet() As String()
    Get
        Return _fullDataSet
    End Get
    Set(ByVal value As String())
        _fullDataSet = value
    End Set
End Property

请注意,这是不好的设计的一个实例,因为它情侣概念的具体表现,并允许类的客户端修改内部没有任何错误检查。 返回一个ReadOnlyCollection或某些专用容器会更好。



Answer 2:

  1. 而不是写你自己的类的,你可以让自己熟悉预先定义的类System.Data.DataTable ,然后使用该举行CSV数据。

  2. 在我一直在编程过去的几年里,我从来没有实际使用多维数组,我建议你不要使用它们,无论是。 通常有达到同样具有更好的数据结构的方式。 例如,考虑创建一个类(姑且称之为CsvRecord只保存一个记录); 即,从CSV文件只有一行。 然后使用任何标准的集合类型从System.Collections.Generic命名空间(如List(Of CsvRecord) )CSV文件保存整个数据(即所有行)。 这有效地降低了问题,“如何做我以CSV数据的一行读?”

  3. 如果您想进一步采取建议#2,请执行照说 ,不只是奠定了你读过的信息CsvRecord ; 相反,创建一个反映实际内容的对象。 例如,如果您的CSV文件中包含的产品价格信息,请致电您的CSV记录类ProductInfo什么更合适。

  4. 但是,如果你想继续你目前的做法,你将需要一个支持字段的属性,由菲利普的答案证明。 然后,您的财产变成了“立面”,仅代表该支持字段。 这不是绝对必要的:你可以简单地做后盾场Public ,让直接类访问它的用户,尽管这不被认为是一个很好的做法。



Answer 3:

理想情况下,你应该有表示要在阅读具体的数据设置整个数组一次是自找麻烦类。 某些程序读取{C,T} SV文件会吓坏了,如果所有的行不具有相同的列数,这是非常容易做到,如果你可以设置数据是任意长度的数组。

如果你想表示任意数据,坦率地说,你会做一样好使用List(Of String) 。 如果它的意思是一个表,你可以代替在第一行读取,并使其成为列表如上(姑且称之为“头文件”),然后进行各行的Dictionary(Of String, String) 。 (让我们把每一行“行”,并集合(这些字典对象的列表),“行”。)在该行刚看完,将它像你做的第一,和这样说row(headers(column number)) = value对于每一列,然后将其填充到“行”。

或者,你可以使用数据类( System.Data.DataTableSystem.Data.DataSet会在这里创造奇迹)。



文章来源: Newbie question: how do I create a class to hold data in Visual Basic Studio?
标签: vb.net class