Các assignment operator trong C# trả về giá trị được gán. Không rõ nơi/cách tính năng này có thể hữu ích. Sử dụng nó trong một cú pháp lạ như thế này có thể giúp bạn tiết kiệm một dòng mã, nhưng sẽ không làm bất kỳ điều gì tốt để có thể đọc được:Tại sao toán tử gán trả về giá trị đã gán trong C#?
private String value;
public void SetAndPrintValue(String value)
PrintValue(this.value = value);
}
private static void PrintValue(String value) {
/* blah */
}
Mục đích của nó là gì?
Đây không chỉ là chất lượng cú pháp C#. Đôi khi nó tiện dụng trong các câu lệnh, cho phép bạn gán và kiểm tra đồng thời. Nó, tuy nhiên, làm cho mã obfuscated hơn, do đó, nó không thấy sử dụng nhiều. Tóm tắt: chuyển nhượng là một biểu thức, không phải là một tuyên bố! –
Một câu hỏi hay khác là sự khởi tạo lười biếng, như trong '_myInstance ?? (_myInstance = new MyObject()) ' – McGarnagle
btn1.Visible = btn2.Visible = false; – EricLaw