早在 C/C++ 时代,微软就有一个#define
.,它允许程序员引用一个未使用的参数。声明,windef.h 的一部分,是:
#define UNREFERENCED_PARAMETER(P) {(P)=(P);}
#define UNREFERENCED_LOCAL_VARIABLE(L) {(L)=(L);}
无论确切的名称和语法是什么,该行的效果是
- 告诉编译器不要将此未使用的参数标记为警告
- 编译器的后期阶段足够聪明,不会在二进制文件中包含该行(或者我记得)
- 直观地告诉查看者未引用的参数不是疏忽。
C#中是否有类似的语法?
尽管对这个问题没有任何影响,但 DevExpress CodeRush Visual Studio 加载项将所有未使用的参数标记为警告,即使在事件处理程序中也是如此。
注意:正如我在评论中所说,我不想使用pragma
块。目的是添加一行代码,该代码行引用该参数以作为警告,但不会增加微不足道的开销,就像 windef.h 头文件宏所做的那样。