理解C#字段初始化要求
- 论坛
- 理解C#字段初始化要求
14 浏览
理解C#字段初始化要求
考虑以下代码:
public class Progressor { private IProgressprogress = new Progress (OnProgress); private void OnProgress(int value) { //whatever } }
在编译时会出现以下错误:
字段初始化程序不能引用非静态字段、方法或属性“Progressor.OnProgress(int)”
我理解它所抱怨的限制,但我不明白为什么这是个问题,但可以在构造函数中进行初始化,如下所示:
public class Progressor { private IProgressprogress; public Progressor() { progress = new Progress (OnProgress); } private void OnProgress(int value) { //whatever } }
在C#中,字段初始化和构造函数初始化之间有什么区别,需要施加这种限制?