问题描述
在讨论C#的使用声明时,我和一个人有争执。
在C#规范(15.13)中,那里这是一个如下的解释。
使用(R r1 = new R()){
r1.F();
}
恰好相当于
R r1 = new R();
试试{
r1.F();
}
最后{
if(r1!= null)( (IDisposable)r1).Dispose();
}
我认为using语句只是一个语法糖。
但这家伙并不这么认为。
他对句法糖的定义非常狭窄。
他说做同样的事情并不代表它' '一个语法糖。
他显示如下的例子。
a ++是a = a + 1的语法糖。
a [i]是C语言*(a + i)的语法糖。
我想知道人们的想法。
你愿意吗?打电话使用"声明一个语法糖?
如果是这样,为什么?
如果没有,为什么不呢?
谢谢。
Sam
Hi,
While discussing C#''s using statement, a guy and I had an argument.
In C# spec (15.13), there''s an explanation like the following.
using (R r1 = new R()) {
r1.F();
}
is precisely equivalent to
R r1 = new R();
try {
r1.F();
}
finally {
if (r1 != null) ((IDisposable)r1).Dispose();
}
I think that using statement is just a syntactic sugar.
But the guy doesn''t think so.
He has a very narrow definition of syntactic sugar.
He says that doing the same thing doesn''t mean it''s a syntactic sugar.
He shows examples like the following.
a++ is a syntactic sugar for a = a + 1.
a[i] is a syntactic sugar for *(a + i) in C language.
I want to know what people think.
Would you call "using" statement a syntactic sugar?
If so, why?
If not, why not?
Thanks.
Sam
推荐答案
这篇关于关于语法糖的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!