【Basic Code】原来这就是“语法糖”

          前些天技术总监在给几位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颗语法糖”,让我们一起提高工作中的编程效率吧~

你可能感兴趣的:(【Basic Code】原来这就是“语法糖”)