|
前些天技术总监在给几位Android工程师做C#培训时,提到了一个“语法糖”的概念,组长问我,你知道“语法糖”吗?我用“一脸懵逼”的神情予以这个大男孩回复,啊哈哈,后来查了查,原来这就是“语法糖”啊。
语法糖(syntactic sugar)是指编程语言中可以更容易的表达一个操作的语法,它可以使程序员更加容易去使用这门语言:操作可以变得更加清晰、方便,或者更加符合程序员的编程习惯。(百度百科的链接,敢点我吗?)
语法糖的三个特性:
1、提高开发效率
2、程序性能不受影响
3、规避了coder可能因手误而出现的错误
总而言之,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换;而且可以提高开发编码的效率,在性能上也不会带来损失,在C#中几种常见的语法糖,如下:
(1)var类型
var writer = new StreamWriter(path);
for(var i=0;i<100;i++){} var的意义在于不必写声明的类型,编译器会根据后面对var的赋值判断它的类型,var的类型一旦确认就不能再改变,它只能作为局部变量使用,不能用做字段也不能用做参数声明。
(2)using == try finally
StreamWriter sw = null;
try
{
sw = new StreamWriter("d:\abc.txt");
sw.WriteLine("test");
}
finally {
if(sw!= null) sw.Dispose();
} 这是我们经常使用的try - catch - finally 里的一种写法,如果使用语法糖,则可以写成这样子:
using (var sw = new StreamWriter("d:\abc.txt")) {
sw.WriteLine("test");
} using实质上就是try fiannaly的一个语法糖,最终起到了释放资源的作用。
想必,现在两个例子就知道了语法糖的作用了,最最浅显的理解就是代码级别上的“快捷键”~~
由于这次出来实习,公司的Visual Studio换成了2015版本,发现C#6.0就有许多新特性,我就举一个“栗子”:
public class Customer
{
public string Name { get; }
public Customer(string firstName,string lastName)
{
Name = firstName +" "+ lastName;
}
}
如上所示代码,是在C#6.0之前的只读属性初始化的写法,再看看V6.0的新写法:
public class Customer
{
public string FirstName { get; }="aehyok";
public string LastName { get; }="Kris";
} 不得不说,这就是微软为我们重新封起来的甜甜的“语法糖”哦~~~
在java语言当中,同样拥有“语法糖”的概念,由于初次接触这个概念,参考博客“Java中的10颗语法糖”,让我们一起提高工作中的编程效率吧~
|