RLH*_*RLH 5 c# static compiler-errors
在过去的几年里,我一直在使用C语言,并且我已经成功地将单一用途的static变量放在我的代码中使用它们的位置附近.
在编写一个需要方法范围静态值的非常基本的方法时,我有点惊讶地发现编译器不喜欢我试图从我的方法中定义一个静态对象.
谷歌搜索已经证实在C#中这是不可能的.不过,我很好奇为什么代码,如下,完全不受限制.
public int incrementCounterAndReturn()
{
static int i = 0;
return ++i;
}
Run Code Online (Sandbox Code Playgroud)
当然,这是一个简单的例子,可以重新定义相同的效果,但这不是重点.方法范围,静态值有它们的位置和目的.哪些设计决策阻止了C#中静态对象的实现?
我们使用的是C#5.0版本,它是2013年.我只能假设这是不可能的,因为它有一个设计选择,而不仅仅是因为"这是一个复杂而难以实现的东西".有没有人有任何内幕消息?
语言设计团队无需提供不实现功能的理由.相反,需要该功能的人需要证明该功能是设计,实施,测试和教育团队可以花费预算的最佳方式.没有人为您提出的功能成功完成此操作.
如果我还在设计团队中并且有这个功能,我会指出它完全没必要.C中的功能是开发人员混淆的一个已知原因,特别是对于初学者而言,本地与类型范围的好处很小.
| 归档时间: |
|
| 查看次数: |
1683 次 |
| 最近记录: |