Установка свойств в одном классе, доступ к другому - PullRequest
0 голосов
/ 07 октября 2009

Мой вопрос в основном такой:

Если я задаю динамические данные из одного класса, могу ли я получить доступ к этим же данным из другого класса учебный класс? Ниже примерный псевдокод того, что я пытаюсь сделать:

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? от SomeOtherClass такой, что:

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();

  }

}

Спасибо за ваши мысли ...

1 Ответ

0 голосов
/ 07 октября 2009

Вы можете получить доступ к членам (ID, Имя) для этих свойств, поскольку вы объявили их как общедоступные.

Когда вы говорите «Персона», вы имеете в виду Тип - тип Персона.

Чтобы получить доступ к члену определенного лица , вам необходимо использовать экземпляр Person.

Person thePersonInstance = new Person(5, "Joe");
thePersonInstance.ID = 3; // This is fine, since it's public

Однако в вашем примере вам нужно будет предоставить определенную коллекцию экземпляров "Person" для вашего метода в SomeOtherClass. Что-то вроде:

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

Затем вы можете использовать это где-нибудь еще, например:

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