就是说out参数必须在调用的时候被赋值
你可以在函数的第一句话加上userDataRight = ??;这样的赋值语句
这和struct无关的

解决方案 »

  1.   

    public void UserValRight(out UserDataRight userDataRight){
    try
    {
    //此处连接数据库部分省略              SqlDataReader userGroupRecord=cmdUserRight.ExecuteReader();
                          //初始化权限                        usetDataRight = new UserDataRight();//add this sentence 
      
                               userDataRight.UserAddRight=false;
                               userDataRight.UserDelRight=false;
    userDataRight.UserEditRight=false;
    userDataRight.UserSaveRight=false;
    userDataRight.UserSelRight=false; 
                            while(userGroupRecord.Read()){
    //判断是否有查询权限
    if(userGroupRecord.GetValue(3).ToString()=="1"){
    userDataRight.UserSelRight=true; 
              }
                                
                   }
          userGroupRecord.Close(); }////////////////////调用部分的代码是UserCharacter userRightCharacter=new UserCharacter("001");
             UserDataRight userDataRights;
    //userDataRights=new UserDataRight();
    userRightCharacter.UserValRight(out userDataRights); 
    if(userDataRights.UserSelRight==true)
           {
    MessageBox.Show("有新增权限");
    }else{
    MessageBox.Show("sdddd");
    }