0

我正在尝试执行此 linq 查询,但在编码时出现“EmpCritGID 无法初始化,因为它是共享的”错误。查询数据表并使用共享属性填充现有类中的值以用于后面的 vb.net 代码的正确方法是什么?

    If CriteriaFlags.CritOrgFlag AndAlso lblOrgName.Text.Equals(String.Empty) Then
        lblOrgName.Text = "需要分配组织"
        lblOrgName.ForeColor = redColor
        lblOrgName.BackColor = 黄色颜色
    万一

    暗淡结果 = 来自 c In EmployeeJobCriteria.AsEnumerable()
        其中 c.Field(Of Integer)("EmpCritGID").Equals(intEmpCritGID)
        选择新的 EmployeeCriteria.CriteriaFlags _
        使用 {.EmpCritGID = c.Field(Of Integer)("EmpCritGID"), _
        .EmpJobFID = c.Field(Of Integer)("EmpJobFID"), _
        .CritFID = c.Field(Of Integer)("CritFID"), _
        .NodeGID = c.Field(Of Integer)("NodeGID"), _
        .CritOrgFlag = c.Field(Of Boolean)("CritOrgFlag"), _
        .CritWeightFlag = c.Field(Of Boolean)("CritWeightFlag"), _
        .CritOppFlag = c.Field(Of Boolean)("CritOppFlag"), _
        .CritActFlag = c.Field(Of Boolean)("CritActFlag")}

    命名空间目标

        公共类 EmployeeCriteria

             公共类 CriteriaFlags

                公共共享 EmpCritGID 作为整数
                公共共享 EmpJobFID 为整数
                公共共享 CritFID 为整数
                公共共享 NodeGID 为整数
                公共共享 CritOrgFlag 为布尔值
                公共共享 ShareCritPmtFlag 为布尔值
                公共共享 CritWeightFlag 为布尔值
                公共共享 CritOppFlag 为布尔值
                公共共享 CritActFlag 为布尔值

            结束类

        结束类

    结束命名空间

4

1 回答 1

0

删除Shared关键字。

Public Class CriteriaFlags 

    Public EmpCritGID As Integer 
    Public EmpJobFID As Integer 
    Public CritFID As Integer 
    Public NodeGID As Integer 
    Public CritOrgFlag As Boolean 
    Public ShareCritPmtFlag As Boolean 
    Public CritWeightFlag As Boolean 
    Public CritOppFlag As Boolean 
    Public CritActFlag As Boolean 

End Class 

通过设置共享(静态)变量或属性来初始化对象是没有意义的。无论如何,他们会分享所有价值观。

http://visualbasic.about.com/od/learnvbnet/a/sharedinstance.htm

于 2012-08-28T22:13:01.363 回答