Kyl*_*ndo 3 .net c# syntactic-sugar
我正忙着深入研究多线程和死锁等问题.本书针对的是伪代码和C代码,我正忙着研究Mutex锁和监视器等实现.
这让人联想到以下几点; 在C#中,事实上我们在做事时有很多语法糖.例如(.NET 3.5):
lock(obj)
{
body
}
Run Code Online (Sandbox Code Playgroud)
与以下相同:
var temp = obj;
Monitor.Enter(temp);
try
{
body
}
finally
{
Monitor.Exit(temp);
}
Run Code Online (Sandbox Code Playgroud)
当然还有其他一些例子,例如using() {}构造等.我的问题是什么时候它更适用于"单独行动"并且自己编码事物而不是在语言中使用"语法糖"?是否应该使用自己的方式而不是那些对您编写的语言更有经验的人?
我记得不得Process在using块中使用对象来帮助解决一些多线程问题和无限循环.因为没有使用构造,我仍然觉得很脏.
谢谢,
凯尔
Chr*_*ich 11
尽可能坚持语法糖.它简洁,易于维护,不易出错,易于理解,并且出于某种原因创建了它.
如果你必须手动控制某些东西(例如操纵IEnumerator<T>而不是使用foreach),那么是的,抛弃语法糖.否则,惯用是一件好事.
软件开发的最大成本是长期维护,所以答案始终是,做一件能够为您提供最简单,最具成本效益的维护路径(例如,所有例外情况都可以证明规则,例如).如果您可以使用语法糖来使您的代码更具可读性,那么如果语法糖阻碍了那么这就是您的答案,那么就不要使用它.
| 归档时间: |
|
| 查看次数: |
901 次 |
| 最近记录: |