本文介绍了关于语法糖的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述




在讨论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

推荐答案




这篇关于关于语法糖的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-21 11:11