C# 使用lambda更改变量值时遇到错误
当一个变量在公式中有另一个变量时,我试图计算这些值。我使用了lambda方法,但是,这种方法有一个限制,我收到了这个错误C# 使用lambda更改变量值时遇到错误,c#,variables,lambda,C#,Variables,Lambda,当一个变量在公式中有另一个变量时,我试图计算这些值。我使用了lambda方法,但是,这种方法有一个限制,我收到了这个错误 错误CS0200属性或索引器'Class3.Storage.b'无法分配给--它是只读的 我尝试过使用get和set方法publicstaticintb{get;set;}=>a+5,但我认为这样做的方法是错误的。有没有一种方法可以使用lambda写入值,或者可能将其与setter合并 我希望看到的是b的值不断地自我更新(因此我使用了lambda方法),以及通过使用Stora
错误CS0200属性或索引器'Class3.Storage.b'无法分配给--它是只读的
我尝试过使用get和set方法publicstaticintb{get;set;}=>a+5代码>,但我认为这样做的方法是错误的。有没有一种方法可以使用lambda写入值,或者可能将其与setter合并
我希望看到的是b的值不断地自我更新(因此我使用了lambda方法),以及通过使用Storage.b++之类的东西编辑b的值的灵活性代码>
谢谢大家!
代码如下所示
class Class3
{
public class Storage
{
public static int a = 100;
public static int b => a + 5;
public static int c;
}
public static void Main()
{
Methods Test = new Methods();
Console.WriteLine("Original a value: {0}", Storage.a);
Console.WriteLine("b value: {0}", Storage.b);
Console.WriteLine("c value: {0}", Storage.c);
Test.Met1();
Console.WriteLine("After met1: {0}", Storage.a);
Console.WriteLine("b value: {0}", Storage.b);
Console.WriteLine("c value: {0}", Storage.c);
Test.Met2();
Console.WriteLine("After met2: {0}", Storage.a);
Console.WriteLine("b value: {0}", Storage.b);
Console.WriteLine("c value: {0}", Storage.c);
Test.Met3();
Console.WriteLine("After met3: {0}", Storage.a);
Console.WriteLine("b value: {0}", Storage.b);
Console.WriteLine("c value: {0}", Storage.c);
Storage.b += 1;
Console.WriteLine("b value: {0}", Storage.b);
}
public class Methods
{
public void Met1()
{
Storage.a -= 10;
Storage.c = Storage.a;
}
public void Met2()
{
Storage.a -= 10;
Storage.c = Storage.a;
}
public void Met3()
{
Console.WriteLine("{0}", Storage.a);
Storage.c = Storage.a;
Met1();
Met2();
if (Storage.a > 10)
{
Met3();
}
}
}
}
只读表示您只能读取:D
所以试试这个:
private static int _f = a + 5;
public static int f
{
get { return _f; }
set { _f = a + 5; }
}
嗨,Zdenek,谢谢你的帮助。我以前尝试过get和set,但使用此方法不会在a
的值更改时更改b
的值。这就是为什么我用lambda。有没有一种方法可以同时使用get、set和lambda?