代码之家  ›  专栏  ›  技术社区  ›  Kyle Rosendo

使用语法糖/内置功能

  •  3
  • Kyle Rosendo  · 技术社区  · 16 年前

    这使我想到以下几点:;在C#和事实上.NET中,我们有很多做事情的语法糖。 For instance

    lock(obj)
    {
       body
    }
    

    等同于:

    var temp = obj;
    
    Monitor.Enter(temp);
    
    try 
    { 
       body 
    }
    finally 
    { 
       Monitor.Exit(temp); 
    }
    

    using() {} 我的问题是,什么时候“独自行动”和自己编写代码比在语言中使用“语法糖”更合适?一个人是否应该用自己的方式而不是那些对你所使用的语言更有经验的人?

    我记得不必使用 Process using 块来帮助解决一些多线程问题和无限循环之前。我仍然为没有using结构而感到肮脏。

    凯尔

    4 回复  |  直到 16 年前
        1
  •  11
  •   Chris Schmich    16 年前

    尽可能地坚持语法上的糖分。它简洁、易维护、不易出错、易于理解,他们创建它是有原因的。

    如果你必须对某些东西进行手动控制(例如操纵 IEnumerator<T> 而不是使用 foreach ),那么是的,扔掉语法糖。否则,地道是一件好事。

        2
  •  7
  •   Tim Jarvis    16 年前

    软件开发的最大成本是长期的维护,所以答案总是,做一些能给你提供最简单和最具成本效益的维护路径的事情(除了所有可能证明规则的例外,例如perf)。如果你能使用语法糖让你的代码更具可读性,那么这就是你的答案如果语法糖妨碍了你,那就不要使用它。

        3
  •  2
  •   Robert Harvey    16 年前

    在C#中,此linq语句:

    var filteredCities =
        from city in cities
        where city.StartsWith("L") && city.Length < 15
        orderby city
        select city;
    

    语法上的sugar表示(并等价于):

    var filteredCities =
      cities.Where(c => c.StartsWith("L") && c.Length < 15))
        .OrderBy(c => c)
        .Select(c => c); 
    

        4
  •  1
  •   overslacked    16 年前

    你不能使用 using 构造是我对.Net语言和框架中提供的新方法最常见的偏离。在很多情况下,IDisposable对象的范围有点超出单个函数的范围。

    然而,了解这些捷径的作用仍然和以往一样重要。我确实认为,很多人如果不能把一件物品包装起来,就不会处理它 ,因为他们不明白它做了什么,它让什么变得更容易。

    所以我真希望有一个像工具提示帮助文本这样的东西来显示这些奇妙的快捷方式,这表明一些重要的事情正在发生-甚至可能是一个不同的关键字着色。

    编辑:

    我一直在想这个,我决定我相信 使用 只是一个误导性的关键词。 foreach 使用 对我来说,这并不意味着发生了什么。有人对此有什么想法吗?如果他们是 disposing 相反;你觉得会更清楚吗?

    推荐文章