C#:ClassA实例化ClassB以便ClassB可以访问ClassA属性?

C#:ClassA实例化ClassB以便ClassB可以访问ClassA属性?,c#,C#,在ClassA的实例A中,我实例化了ClassB,它启动一个新线程并启动一个轮询循环。根据ClassB找到的内容,我希望它更新ClassA实例A中的属性。这可能吗?我尝试将“this”传递给ClassB构造函数,但没有成功。我知道如何为ClassB提供任何数量的其他类引用,但我不知道如何为它提供ClassA的实例A 如果能给出相同的理论结果,我很乐意使用不同的模型。也许这可以通过事件来实现?非常感谢 我的代码: public class xxx { yyy ggg = new yyy(t

在ClassA的实例A中,我实例化了ClassB,它启动一个新线程并启动一个轮询循环。根据ClassB找到的内容,我希望它更新ClassA实例A中的属性。这可能吗?我尝试将“this”传递给ClassB构造函数,但没有成功。我知道如何为ClassB提供任何数量的其他类引用,但我不知道如何为它提供ClassA的实例A

如果能给出相同的理论结果,我很乐意使用不同的模型。也许这可以通过事件来实现?非常感谢

我的代码:

public class xxx
{
    yyy ggg = new yyy(this); // "this" redlined by C# Express
}
public class yyy 
{
    public yyy(xxx InstantiatedBy)
    {
        MyInstantiator = InstantiatedBy; 
    }
    xxx MyInstantiator = new xxx();
}

错误消息是“关键字“this”在当前上下文中不可用”

请将其放入构造函数中:

public class xxx
{
    private yyy ggg;

    public xxx()
    {
        ggg = new yyy(this); // "this" redlined by C# Express
    }
}
public class yyy
{
    public yyy(xxx InstantiatedBy)
    {
        MyInstantiator = InstantiatedBy;
    }
    xxx MyInstantiator = new xxx();
}

当然,这是可能的,只要您的类具有基本同步,就可以像通常一样更新该类。同时添加一些代码,因为很难想象你正在尝试做什么。你能展示一下你没有运气的尝试吗?只是想知道,这些类中有没有一个是Windows
窗体
?因为只有UI的线程可以更新它,以防这是您面临的问题。“红线”总是带有错误消息(并且不会在每个人的系统上都是红色)