c# - 为什么赋值运算符在 C# 中返回分配的值?

标签 c#

<分区>

assignment operator在 C# 中返回分配的值。 目前尚不清楚此功能在何处/如何提供帮助。在像这样的奇怪语法中使用它可以为您节省一行代码,但对可读性没有任何好处:

   private String value;
   public void SetAndPrintValue(String value)
      PrintValue(this.value = value);
   }
   private static void PrintValue(String value) {
      /* blah */
   }

那么它的目的是什么?

最佳答案

Chained assignment是许多回到 C(可能更早)的语言的主要内容。 C# 支持它,因为它是此类语言的一个共同特征,并且有一些有限用途——例如 goto 语句。

偶尔你可能会看到这样的代码:

int a, b, c;
for(a = b = c = 100; a <= b; c--)
{
    // some weird for-loop here
}

或者这个:

var node = leaf;
while(null != node = node.parent) 
    node.DoStuff();

这可能会使一些代码更紧凑一些,或者允许您做一些巧妙的技巧,但它肯定不会使其更具可读性。在大多数情况下,我建议不要这样做。

关于c# - 为什么赋值运算符在 C# 中返回分配的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17737436/

相关文章:

c# 和捕获异常

c# - 获取 VSTO 中先前标记的 Excel 单元格的范围

c# - ASP.NET核心MVC : split hosting and business-logic/ui into separate projects

c# - Xamarin - 如何在不使用其他服务的情况下发送推送通知

c# - Xamarin MediaElement不会发布视频源

c# - 执行 SQL 备份时访问被拒绝

C# Linq 与柯里化(Currying)

c# - System.Threading.Timer 经过后,DateTime.UtcNow 是否有可能报告错误的时间?

c# - 请定义#define

c# - 在这种情况下我应该担心释放资源吗?