【问题标题】:Setting Properties In Once Class, Accessing From Another在一个类中设置属性,从另一个类访问
【发布时间】:2010-12-04 18:01:26
【问题描述】:

我的问题基本上是这样的:

如果我从一个类设置动态数据,我可以从另一个类访问相同的数据吗 班级?以下是我正在尝试做的粗略伪代码:

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

  }

}

感谢您的意见...

【问题讨论】:

    标签: oop properties get set


    【解决方案1】:

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

    当您说“Person”时,您指的是 Type - Person 类型。

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

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

    但是,在您的示例中,您需要为 SomeOtherClass 中的方法提供特定的“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();
        }
    }
    

    然后您可以在其他地方使用它,例如:

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

    【讨论】:

    • 您的帖子很有帮助,谢谢。但是,我仍然对某个特定部分感到困惑——是否可以从类 2 的上下文中访问类 1 中的数据集?我有一个 page.aspx.cs 代码隐藏,它在循环中设置数据: List person = new List(); for (i = 0; i IPeopleService.GetPeople() { //我仍然迷失在这里}
    • 可以这样做吗?从我的代码后面设置数据,然后从另一个类访问“正在设置的数据”以获取各种进度更新?或者,有没有更好的方法来解决这个问题?非常感谢您的帮助。
    • 好吧,如果您尝试“按设置”访问它,即:在同一时间从不同的线程访问它,这是可能的,但您需要考虑使用一种锁定机制来保护您的数据。不过,您需要有一个共享服务,这样您才能访问该列表 - 但只要您这样做,它应该可以正常工作。
    • 好的,再次感谢 Reed。我将阅读锁定和共享服务。同时,我也将尝试重新发布这个问题,因为我认为我可以问得更好。再次感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    相关资源
    最近更新 更多