我正在創建一個WCF服務,並且該服務中的一個項目是一個名爲County的Enum類,其中包含此狀態中的縣的列表。另一個項目是一個名爲Person的Object類,它使用了這個Enum數組(因爲商業原因需要一個數組,而不僅僅是一個縣)。這不是我使用的這個服務中唯一的數組,而是其他數組涉及其他對象,而不是枚舉,並且工作得很好。類型'1維陣列'錯誤的值
我收到以下錯誤:
Value of type '1-dimensional array of type LAService.County' cannot be converted to '1-dimensional array of type LAService.County?' because 'LAService.County' is not derived from 'County?'
。
什麼是'?'
?由於使用了錯誤的類型,我之前發生過此錯誤,但問號是一件新事物。我如何克服這個錯誤?
我的代碼:
Public Enum County
Acadia
Allen
Ascension
...and on and on...
End Enum
<DataContract>
Public Class Person
<DataMember()>
Public ServiceCounty() As Nullable(Of County)
...and on and on...
End Class
Public Function FillPerson(ds as DataSet) As Person
Dim sPerson as Person
Dim iCounty as Integer = ds.Tables(0).Rows(0)("COUNTY")
Dim eCounty As String = eval.GetCounty(iCounty) 'This evaluates the county number to a county name string
Dim sCounty As String = DirectCast([Enum].Parse(GetType(County), eCounty), County)
Dim counties(0) As County
counties(0) = sCounty
sPerson = New Person With{.ServiceCounty = counties}
Return sPerson
End Function
之前,我建立了代碼,視覺工作室出上述錯誤處字「counties
」的「sPerson = New Person With{.ServiceCounty = counties}
」線。同樣,我使用的所有其他數組都是以相同的方式創建的,但是使用Objects而不是Enums。我已經嘗試將我的Dim sCounty as String
更改爲Dim sCounty As County
,但我得到相同的錯誤。我也試圖擺脫DirectCast
線,只使用Dim sCounty As County = County.Acadia
仍然有錯誤。
唉唉,這是我第一次曾經不得不使用Nullable。我只是想不能要求縣財產。現在我知道了(並且知道是一場戰鬥。) –
The?意味着在VB.Net –
@ChrisDunaway同樣的事情謝謝! –