C#将引用传递给构造函数中的类

C#将引用传递给构造函数中的类,c#,class,reference,C#,Class,Reference,我想在创建类的新实例时将对设置的引用传递给类。然后,在某些情况下,应更改提供的设置。然而,当我尝试这样做时,我得到“不能在匿名方法、lamda表达式或查询表达式中使用ref或我们的参数‘设置’” 在应用程序中,我必须经常使用“MyClass”,而且为每个实例编写事件处理程序似乎很愚蠢,因为每个实例之间只有设置不同 有什么方法可以做到这一点吗?用lambda表达式传递一个委托: class MyClass { private int setting; public MyClass

我想在创建类的新实例时将对设置的引用传递给类。然后,在某些情况下,应更改提供的设置。然而,当我尝试这样做时,我得到“不能在匿名方法、lamda表达式或查询表达式中使用ref或我们的参数‘设置’”

在应用程序中,我必须经常使用“MyClass”,而且为每个实例编写事件处理程序似乎很愚蠢,因为每个实例之间只有设置不同


有什么方法可以做到这一点吗?

用lambda表达式传递一个委托:

class MyClass {
    private int setting;

    public MyClass(Action<int> onNewSetting) {
        SomeOtherClass someOtherClass = new SomeOtherClass();

        someOtherClass.SomeEvent += (s, e) => {
            setting = someOtherValue;
            onNewSetting(setting);
        };
    }
}
class MyClass 
{
    private int setting;

    public MyClass(ref int setting) 
    {
       SomeOtherClass instance = new SomeOtherClass(s => setting = s);
    }
}


class SomeOtherClass
{
    Action<int> changeValue;
    public SomeOtherClass(Action<int> method) { changeValue = method; }    

   // invoke it and pass new value where you need it :
   // void SomeWhereInCode() { changeValue(100); }
}
class-MyClass
{
私有int设置;
公共MyClass(参考整数设置)
{
SomeOtherClass实例=新建SomeOtherClass(s=>setting=s);
}
}
给别人上课
{
行动价值;
公共SomeOtherClass(操作方法){changeValue=method;}
//调用它并在需要时传递新值:
//void SomeWhereInCode(){changeValue(100);}
}

ref
根本不是这样工作的。它基本上只在方法调用期间“有效”。假设您使用局部变量引用调用了
MyClass
构造函数。。。你认为这会怎样?谢谢你的快速回答,我做了我想做的事。:)
int local = 0;
var m = new MyClass(i => local = i);
class MyClass 
{
    private int setting;

    public MyClass(ref int setting) 
    {
       SomeOtherClass instance = new SomeOtherClass(s => setting = s);
    }
}


class SomeOtherClass
{
    Action<int> changeValue;
    public SomeOtherClass(Action<int> method) { changeValue = method; }    

   // invoke it and pass new value where you need it :
   // void SomeWhereInCode() { changeValue(100); }
}