Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法打电话给&;是否从类中的方法使用类类型?Vb.Net_Vb.net - Fatal编程技术网

有没有办法打电话给&;是否从类中的方法使用类类型?Vb.Net

有没有办法打电话给&;是否从类中的方法使用类类型?Vb.Net,vb.net,Vb.net,您好,我先说我以前是一名asp开发人员,正在学习oop编程/Vb.Net 我在一个三层架构上工作,并试图尽可能多地抽象我的代码,因为我有一个非常大的内部网要转换。在我的业务层中,我用管理方法定义我的类。下面是我的一个班级的例子 我的问题:是否有一种方法可以让我泛指类类型和对象类型,这样我就不必在整个类中连续引用类名/类型“ServiceRequest”。例如: "Public Function GetItem(ByVal ID As Integer) As Me.GetType"? 任何信息

您好,我先说我以前是一名asp开发人员,正在学习oop编程/Vb.Net

我在一个三层架构上工作,并试图尽可能多地抽象我的代码,因为我有一个非常大的内部网要转换。在我的业务层中,我用管理方法定义我的类。下面是我的一个班级的例子

我的问题:是否有一种方法可以让我泛指类类型和对象类型,这样我就不必在整个类中连续引用类名/类型“ServiceRequest”。例如:

"Public Function GetItem(ByVal ID As Integer) As Me.GetType"? 
任何信息,如果这是可能的,我应该研究什么主题将不胜感激。如果我做了一些明显错误的事情,请随意评论代码。谢谢

Public Class ServiceRequest
    Inherits DataUtility

#Region "Properties"
    Public Property ReqID As Integer
    ' Public Property PrjID As Integer
    Public Property EntBy As String
    Public Property EntDate As DateTime
    Public Property ServiceType As String
    Public Property ResponseTime As String
    Public Property ServiceReason As String
    Public Property Comments As String
#End Region

#Region "Public Methods"
    Public Function Save() As Integer
        Return SaveRecord(GetParamsList(Me))
    End Function

    Public Function Delete(ByVal ID As Integer) As Boolean
        Return DeleteRecord(ID)
    End Function

    Public Function GetItem(ByVal ID As Integer) As ServiceRequest
        Dim retVal As ServiceRequest = New ServiceRequest()
        Dim sdr As SqlDataReader = GetRecord(ID)
        While sdr.Read()
            retVal = ParseDataToObj(sdr)
        End While
        Return retVal
    End Function

    Public Function GetList(ByVal ID As Integer) As List(Of ServiceRequest)
        Dim retVal As List(Of ServiceRequest) = New List(Of ServiceRequest)()
        Dim sdr As SqlDataReader = GetRecords(ID)
        While sdr.Read()
            Dim listObj As ServiceRequest = ParseDataToObj(sdr)
            retVal.Add(listObj)
        End While
        Return retVal
    End Function
#End Region

#Region "Helper Methods "
    Private Function GetParamsList(ByVal paramVal As ServiceRequest) As List(Of SqlParameter)
        'Sending Data to SQL Server - Stored Procedures
        Dim retVal As List(Of SqlParameter) = New List(Of SqlParameter)

        With paramVal
            retVal.Add(New SqlParameter("@ReqID", .ReqID))
            'retVal.Add(New SqlParameter("@CusID", .CusID))
            retVal.Add(New SqlParameter("@EntBy", .EntBy))
            retVal.Add(New SqlParameter("@ServiceType", .ServiceType))
            retVal.Add(New SqlParameter("@ResponseTime", .ResponseTime))
            retVal.Add(New SqlParameter("@ServiceReason", .ServiceReason))
            retVal.Add(New SqlParameter("@Comments", .Comments))
        End With
        Return retVal
    End Function

    Private Function ParseDataToObj(ByVal dr As SqlDataReader) As ServiceRequest
        ' Reading data and converts to object
        ' Single vs list - if boolean then get case types list

        Dim returnObjData As New ServiceRequest()
        With returnObjData
            .ReqID = MyBase.GetDataValue(Of Integer)(dr, "ReqID")
            '.CusID = MyBase.GetDataValue(Of Integer)(dr, "CusID")
            .EntBy = MyBase.GetDataValue(Of String)(dr, "EntBy")
            .EntDate = MyBase.GetDataValue(Of DateTime)(dr, "EntDate")
            .ServiceType = MyBase.GetDataValue(Of String)(dr, "ServiceType")
            .ResponseTime = MyBase.GetDataValue(Of String)(dr, "ResponseTime")
            .ServiceReason = MyBase.GetDataValue(Of String)(dr, "ServiceReason")
            .Comments = MyBase.GetDataValue(Of String)(dr, "Comments")
        End With
        Return returnObjData
    End Function
#End Region

End Class

如果我理解正确;您可能可以使用泛型

Public Class classHolder(Of T)
    Private someValue As T

    Public Function GetItem(ByVal ID As Integer) As T
        Return someValue
    End Function
End Class

T是你想要的任何类型。

不,至少我不知道。但是如果有办法,你应该避免它,因为可读性的原因。