lox*_*xxy 9 c# static language-features
我总是习惯将结构视为某种较少特权的东西,或者具有较少特征的东西.也许是因为OOP概念将所有东西都吹成了类.
从少量暴露到C#,我理解设置一个静态类,确保其所有成员和函数都是静态的.此外,我们不能有一个构造函数来初始化该类,因为只有一个实例.
public static struct mystruct
{
public static int a;
}
Run Code Online (Sandbox Code Playgroud)
我在堆栈溢出处指出这是一个错误的方法.有人可以详细说明.
当我创建一个新的cs文件并在控制台中编译它时,我得到了相应的错误,说"静态对此项无效".奇怪的是,当我将其添加到现有的工作项目中时,看看编译器是否会抱怨,但令我惊讶的是它没有.这有什么理由?
Jon*_*eet 17
静态类只是静态成员(任何类型 - 字段,事件,属性和最常见的方法)的容器.
静态结构将完全相同,因此不会提供任何优势 - 但读者可能认为它具有一些特殊含义.为避免混淆,因此禁止.从概念上讲,它与静态类一样有意义 - 结构和类之间的区别实际上就它们的实例如何表现而言,并且由于不存在任何类型的静态类型的实例,这种差异将是没有实际意义.
(当然,并不是我在设计会议上决定这一点.Eric Lippert可能能够找到一些有关它的注释.上面只是一个有根据的猜测.注释的C#3规范在这个问题上保持沉默,如同我可以看到.)
| 归档时间: |
|
| 查看次数: |
7103 次 |
| 最近记录: |