Observable Collection C#无法访问

时间:2014-05-22 04:47:16

标签: c# .net wpf winforms oop

两个愚蠢的疑惑:

  1. 我无法访问我引用的另一个类中的属性Students。请告诉我为什么我无法引用或称呼它?

  2. 我不能在类级别声明变量并在该类中的方法内访问它,除非使用ref关键字?假设我有一个名为Display的方法,其返回类型为IEnumerable<Student>,在其中,我想调用并返回StudentsListDetails

  3. 我的班级看起来像这样:

    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;
            }
        } 
    }
    

2 个答案:

答案 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等关键字明确禁止修改)。