Oop 在Once类中设置属性,从其他类访问

Oop 在Once类中设置属性,从其他类访问,oop,properties,get,set,Oop,Properties,Get,Set,我的问题基本上是: 如果我从一个类设置了动态数据,我可以从另一个类访问相同的数据吗 上课?下面是我试图做的粗略的伪代码: Public Class Person { public string ID { get; set; } public string Name { get; set; } } 我做了以下工作: Public Class SomeClass { private void SomeMethod() { List<Person>

我的问题基本上是:

如果我从一个类设置了动态数据,我可以从另一个类访问相同的数据吗 上课?下面是我试图做的粗略的伪代码:

Public Class Person
{
  public string ID { get; set; }
  public string Name { get; set; }

}
我做了以下工作:

Public Class SomeClass
{

   private void SomeMethod()
   {

        List<Person> p = new List<Person>();

         loop {
           p.Add(id[i], name[i]);
           Timer t = new Timer(); 
          t.Interval = 1000;
         }
}
公共类SomeClass
{
私有方法()
{
列表p=新列表();
环路{
p、 添加(id[i],名称[i]);
定时器t=新定时器();
t、 间隔=1000;
}
}
我可以访问SomeClass中设置的值吗 来自其他类别,以便:

Public SomeOtherClass
{

  private List<Person> SomeOtherMethod(string id)
  {
      // HERE, THE RESPONSE VALUES MAY CHANGE BASED ON
      // WHERE IN THE LOOP SomeClass.SomeMethod HAS SET
      // THE VALUES IN Person.

      var query = from p in Person
                  where p.ID == id
                  select p;

      return query.ToList();

  }

}
publicsometherclass
{
私有列表SomeOtherMethod(字符串id)
{
//在这里,响应值可能会根据
//其中在循环中设置了SomeClass.SomeMethod
//个人价值观。
var query=来自p本人
其中p.ID==ID
选择p;
返回query.ToList();
}
}

感谢您的想法…

您可以访问这些属性的成员(ID、名称),因为您已将它们声明为公共

当你说“人”时,你指的是一种类型——人类型

要访问特定人员的成员,您需要使用Person的实例

Person thePersonInstance = new Person(5, "Joe");
thePersonInstance.ID = 3; // This is fine, since it's public
但是,在您的示例中,您需要为其他类中的方法提供特定的“Person”实例集合。例如:

Public SomeOtherClass
{

    // You need to provide some collection of Person instances!
    public List<Person> SomeOtherMethod(string id, IEnumerable<Person> people)
    {
        var query = from p in people
              where p.ID == id
              select p;

        return query.ToList();
    }
}
publicsometherclass
{
//您需要提供一些Person实例集合!
公共列表SomeOtherMethod(字符串id,IEnumerable人)
{
var query=来自人中的p
其中p.ID==ID
选择p;
返回query.ToList();
}
}
然后你可以在其他地方使用它,比如:

void SomeMethod()
{
      List<Person> people = new List<Person>();
      people.Add(new Person(1, "Name1");
      people.Add(new Person(2, "Name2");

      SomeOtherClass other = new SomeOtherClass();
      List<Person> filteredPeople = other.SomeOtherMethod(1);
 }
void SomeMethod()
{
列表人员=新列表();
人员。添加(新人员(1,“姓名1”);
人员。添加(新人员(2,“姓名2”);
SomeOtherClass other=新建SomeOtherClass();
List filteredPeople=other.SomeOtherMethod(1);
}

您的帖子非常有用,谢谢。但是,我仍然挂断了一个特定的部分-是否可以从类2的上下文访问类1中的数据集?我有一个page.aspx.cs codebhind,它正在循环中设置数据:List person=new List();例如(i=0;我可以这样做吗?从我的代码中设置数据,然后从另一个类中访问“正在设置”的数据,以获得排序的进度更新?或者,有没有更好的方法来解决这个问题?非常感谢您的帮助。如果您试图访问“正在设置”的数据,即:在完全相同的时间从不同的线程,这是可能的,但你需要研究使用锁定机制来保护你的数据。不过,你需要有一个共享服务,这样你就可以访问列表-但只要你这样做,它应该工作得很好。好的,再次感谢里德。我将阅读锁定和共享服务。在同时,我也将尝试重新发布这个问题,因为我认为我可以问得更好。再次感谢你的帮助!