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;我可以这样做吗?从我的代码中设置数据,然后从另一个类中访问“正在设置”的数据,以获得排序的进度更新?或者,有没有更好的方法来解决这个问题?非常感谢您的帮助。如果您试图访问“正在设置”的数据,即:在完全相同的时间从不同的线程,这是可能的,但你需要研究使用锁定机制来保护你的数据。不过,你需要有一个共享服务,这样你就可以访问列表-但只要你这样做,它应该工作得很好。好的,再次感谢里德。我将阅读锁定和共享服务。在同时,我也将尝试重新发布这个问题,因为我认为我可以问得更好。再次感谢你的帮助!