当前位置:  开发笔记 > 编程语言 > 正文

C#lambda变量初始化

如何解决《C#lambda变量初始化》经验,为你挑选了3个好方法。

今天我第一次看到类似的东西:

private string m => string.Empty;

使用lambda初始化变量.为什么这样做,有什么好处?



1> haim770..:

它被称为Expression-Bodied Properties,它只是getter-only属性的快捷方式:

private string m
{
    get { return string.Empty; }
}

至于这种方法的好处,我想你可以将它视为语法糖,只能节省你一些击键.

请参阅Roslyn Wiki


不只是保存击键,而且如果你有很多键盘也更容易阅读 - 更少杂乱.(也就是说,假设读者熟悉这种语法.)

2> Jakub Lortz..:

它不是一个变量,它是一个表达身体的财产.一个只读属性,在您的情况下返回string.Empty.

它是一样的

private string m { get { return string.Empty; } }

这是C#6.0中引入的新功能之一.好处是更短,更简洁的代码.特别是如果你有一个具有很多简单只读属性的类.

如果您想查看此语法的真实示例,请查看Eric Lippert博客上的这篇文章.如您所见,那里有很多单行方法和属性.如果没有表达式的属性和成员,代码会更长.而相当一部分将是花括号.



3> Christian Ki..:

这实际上不是变量初始化,这将lambda表达式"string.Empty"绑定到"m",所以每当你取消引用"m"时,它实际上会评估你的lambda表达式.

如需进一步阅读,请查看此github页面("表情身体功能成员"部分)

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有