111,088
社区成员




public Action<string> Hello{get; set;}
这样好更像是“属性”了!呵呵
其实看你引用的这个作者的话,他就对property、event、field并没有先做特别的区分。可见他是站在面面对想编程语言的基本的通用概念上来讲的,而不是一上来就死抠“.net字眼”。当然,不理解很多作者这个背景,就会产生一些歧义。public Action<string> Hello;
这就跟public event Action<string> Hello;
有所对比。你可以试试看,前者,客户程序可以随意重新给Hello属性赋值、修改它。而后者,c#编译器约束客户程序只能用+=、-=等有限的三四个方法来操作它,通过对开发人员使用event的更深刻理解,语言设计者希望在编译时就把很多设计bug给挑出来(而不是像javascript之类的混乱的语言,等到程序运行到某一种特殊数据时,才在用户面前崩溃)。