使用Visual Studio 2010使用C#进行编码时遇到此错误。
public List<Employee> employee_getData()
{
List<Employee> employees;
employees = new List<Employee>();
connection = new SqlConnection(connectionStr);
cmd = new SqlCommand("sp_employeeList", connection);
try
{
connection.Open();
dr = new SqlDataReader();
dr = cmd.ExecuteReader();
while (dr.Read())
{
Employee e = new Employee(dr["e_ID"].ToString(), dr["e_Name"].ToString(), DateTime.Parse(dr["e_dayofBirth"].ToString()), dr["e_Regency"].ToString()
, float.Parse(dr["e_salaryRate"].ToString()), dr["e_workingBranch"].ToString(), dr["e_workingPosition"].ToString(),
dr["e_username"].ToString(), dr["e_passcode"].ToString());
employees.Add(e);
}
}
catch (Exception e)
{
}
finally
{
connection.Close();
}
return employees;
}
它会抛出一个包含以下细节的异常:
可访问性不一致:返回类型 'System.Collections.Generic.List'更少 比方法更容易 'ResortLib.DataAccessObject.DAO_Employee.employee_getData()'
答案 0 :(得分:3)
您的方法标记为public
,但您的班级Employee
访问权限较少。您可能没有使用类定义指定任何访问说明符,因此将其设为internal
。您可以通过在类中指定public
来修复该错误:
public class Employee
{
//your class clode
答案 1 :(得分:1)
看看这个样本:
// if you not specify explictly the access modifier
// it is internal for class/struct inside namespace
// or private for inner types
/*internal*/ class A
{
}
public class B
{
public List<A> GetA() // <- this line give error Inconsistent accessibility...
{
return null;
}
}
因此,要解决您的问题,您可以将课程Employee
设为公开或以其他方式使您的方法employee_getData
内部。正如在c#中注意命名约定,你可以在网上找到很多信息。