![]() |
1
5
您可以将这些方法设置为静态的,并且它可以工作,但是在分配所有字段之前,不能调用非静态方法。 |
![]() |
2
2
在填充所有字段(属性)之前,不允许对结构调用方法。 我知道这是个骗局,但这会奏效的。
|
![]() |
3
2
gbegen有正确的想法-使范围检查方法静态化。 这不仅可以解决问题,而且可以使代码更清晰:方法根本不依赖于结构的状态,也不具有多态性,因此它们不应该是实例方法。 |
![]() |
4
1
在验证输入之前,可以将每个字段设置为零。这是有意义的,因为默认的构造程序无论如何都会将它们设置为零,所以这是一个无论如何都必须在程序中处理的情况。一旦设置了这些值,就可以调用任何您想要的方法,甚至在构造函数中也是如此。 但正确的解决方案是其他人都在说的:让范围检查静态方法。事实上,在这种情况下,它们是纯函数(没有副作用,只在参数上操作,而不是静态或实例字段)。纯函数总是静态的。从调试、多线程、性能等方面来看,静态纯函数都是巧克力棒的。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 5 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 5 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |