为什么不允许使用nameof(object)?
在C#6.0中,您可以这样写:
var instance = default(object); var type = typeof(object);
他们有相同的结果:
var instance = default(System.Object); var type = typeof(System.Object);
但你不能写这个:
var name = nameof(object);
它会生成以下错误:
表达式术语“对象”无效。
但是你仍然可以这样写:
var name = nameof(System.Object);
为什么nameof(object)
不能编译?
不同之处在于object
是Object
类的同义词,而nameof()
不适用于同义词。
同样适用于nameof(int)
vs nameof(Int32)
- 什么时候==会以不同的方式覆盖.equals?
- TextInputEditText:ArgumentNullException:MvxWeakEventSubscription中缺少源事件信息
- 远程WMI连接
- 在ASP.NET Calendar Control的OnDayRender事件期间添加LinkButtons
- 用户活动记录,遥测(以及全局exception处理程序中的变量)
- 在c#中设置/扩展List 长度
- 说服C#编译器在成员返回后执行将停止
- 事件处理程序位于与MainWindow不同的类中
- 获取403 Forbidden错误。 客户端身份validation方案“Anonymous”禁止HTTP请求