多重赋值(field = Property = value)

时间:2013-06-21 09:32:17

标签: c# .net properties variable-assignment assignment-operator

在C#中执行此操作是否安全?

field = Property = value;

是否可以保证连续调用setter和getter,field只会为getter的结果分配value?编译器会将其优化为value吗?

1 个答案:

答案 0 :(得分:5)

使用

    private int tada;
    public int TADA
    {
        get
        {
            Console.WriteLine("GETTER");
            return tada;
        }
        set
        {
            Console.WriteLine("SETTER");
            tada = value;
        }
    }

        int s = TADA = 1;

我只将SETTER写入输出窗口,因此它似乎不会调用getter。

来自C# Language Fundamentals

  

您甚至可以为多个变量分配相同的值,如下所示:

     

int a,b,c,d;

     

a = b = c = d = 5;

     

在这种情况下,a,b,c和d都将具有值5.这是有效的   因为C#编译器首先执行最右边的赋值;那   是,d = 5.该赋值本身返回一个值,值为5   然后编译器将返回的值赋给c。第二次任务   还返回一个值,依此类推,直到所有变量都已存在   分配