两个愚蠢的疑惑:
我无法访问我引用的另一个类中的属性Students
。请告诉我为什么我无法引用或称呼它?
我不能在类级别声明变量并在该类中的方法内访问它,除非使用ref
关键字?假设我有一个名为Display的方法,其返回类型为IEnumerable<Student>
,在其中,我想调用并返回StudentsListDetails
我的班级看起来像这样:
public class Service
{
private ObservableCollection<Student> studentsList;
public ObservableCollection<Student> StudentsListDetails;
public StudentEntities StudentEntities { get; set; }
public ObservableCollection<Student> Students
{
get
{
if (studentsList == null && StudentEntities != null)
{
StudentEntities.Set<Student>().Load();
studentsList = StudentEntities.Set<Student>().Local;
StudentsListDetails = studentsList;
}
return studentsList;
}
}
}
答案 0 :(得分:1)
我不确定你的问题,但我认为首先它会对你有所帮助: -
1→您必须使用其他类中的服务类的对象来访问Students属性。喜欢这个
Service objService = new Service();
var lst = objService.Students;
2→你能把你想要使用的方法放在&#34; StudentsListDetails&#34;和你正在编写这种方法的类。
您对此进行了更新,如果可以,我会尽力帮助您。
答案 1 :(得分:1)
广告。 1,因为学生在上面的代码中不是静态的,你首先要创建一个Service类的实例,然后你可以访问Students属性
Service serv = new Service();
ObservableCollection<Student> students = serv.Students;
如果有一个服务实例是不可取的,您希望使Student属性(以及代码中使用的所有字段/方法/属性)保持静态。然后你可以访问它:
ObservableCollection<Student> students = Service.Students;
广告。 2.如果方法和变量都在同一个类中,则不需要ref / out关键字。您可以直接访问和修改它(除非const或readonly等关键字明确禁止修改)。