【发布时间】:2015-01-15 20:27:36
【问题描述】:
编辑:考虑到我无权访问列表
编辑:我将示例更改为更高级
编辑:固定示例;P
编辑:再次编辑 我确定我被否决了,因为你们不了解我的考虑的起源。我知道它可以在 C++ 中使用指针,但不确定它在 C# 中是否仍然可行。而且我没有问因为我不知道如何更改列表中的元素!我只想在无法访问该列表的情况下完成它!这只是一个例子,因为真实的例子很复杂,在这里介绍......
我想知道是否可以做这样的事情 Foo 类 { 公共 int foo = 100; 事件处理程序;
public Foo()
{
something += smth;
}
public void doSmth()
{
something(this, EventArgs.Empty);
}
public static void smth(object sender, EventArgs e)
{
sender = new Foo();
}
}
class Boo : Foo
{
EventHandler<EventArgs> something;
public Boo()
{
foo = 1;
something += smth;
}
}
static void Main(string[] args)
{
List<Foo> list = new List<Foo>();
Foo foo = new Boo();
list.Add(foo);
foreach (Foo f in list)
f.doSmth();
foreach (Foo f in list)
Console.WriteLine(f.foo);
Console.ReadKey();
}
我的输出是 1,但我想得到 100。可以通过引用从列表中更改对象吗?
【问题讨论】:
-
我不明白为什么我现在会被否决,当我刚刚编辑我的示例时,这不是微不足道的问题。也许那样做是不可能的,但你可以在投反对票时发表评论
-
我也不确定。这不完全是一个模范问题,但 -5 似乎有点苛刻。
-
在我看来,您根本无权访问该列表。如果您只能访问您知道在列表中的对象,但没有对实际列表的引用,则不可能将某些内容插入列表中。这是另一个可能感兴趣的问题:stackoverflow.com/questions/776430/…