2014-05-22 70 views
-2

二傻疑惑:观察集合C#无法访问

  1. 我无法访问在我引用另一个类的属性Students。请让我知道为什么我无法引用或调用它?

  2. 我不能在类级别声明一个变量,并在该类内部的方法中访问它,但使用ref关键字除外?说我有一个方法叫做显示其返回类型为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; 
     } 
    } 
} 
+2

很难弄清楚你在这里问的是什么。你能否让你的问题更加可靠? – Fiddles

+0

plz更新您的问题以清楚了解问题。 – loop

+0

@awexfwex:好的,我想访问返回IEnumerable 的方法内的StudentsListDetails。其次 - 我应该能够从其他课程获得“学生”资产。 – Learner

回答

1

我不知道你的问题但我认为对于第一点,它会帮助你: -

1->你必须通过使用其他类中的服务类的对象来访问学生属性。像这样

Service objService = new Service(); 
    var lst = objService.Students; 

2->你可以把你想用“StudentsListDetails”和类中,你写这个方法你的方法。

你更新它,我会尽力帮助你,如果我可以。

+0

非常感谢,这可以帮助我很多。我似乎忘了很多事情,因为现在没有编码。 – Learner

1

Ad。 1,因为学生是不是在上面的代码静态,你首先要创建服务类的实例,那么你就可以访问学生财产

Service serv = new Service(); 
ObservableCollection<Student> students = serv.Students; 

如果有服务的一个实例是不可取的,你想学生属性(以及代码中使用的所有字段/方法/属性)静态。然后你访问它像:

ObservableCollection<Student> students = Service.Students; 

广告。 2.如果方法和变量都在同一个类中,则不需要ref/out关键字。您可以直接访问并修改它(除非修改已被关键字const或readonly明确禁止)。

+0

谢谢,恐怕我虽然是同一个班级,但我并没有在功能上获得变数的智能感知。哎呀,真讨厌 – Learner