【.net 深呼吸】细说CodeDom(6):方法参数
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:56
本文老周就给大伙伴们介绍一下方法参数代码的生成。
在开始之前,先补充一下上一篇烂文的内容。在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作,后来发现是可以的。不过啊,MemberAttributes 枚举有些情况下不那么好弄,最典型的就是要生成抽象类的时候,反正老周试了很久,用MemberAttributes枚举不能顺利生成抽象类。
这时候,老周想到了 TypeAttributes,然后就试了一下。
把 TypeAttributes 属性设置为 Abstract ,就可以将类标识为抽象类。而抽象成员则可以将 Attributes 属性直接指定为抽象成员,比如上面例子中的A属性。
然后生成的代码如下图所示。

下面进入本文的要点——生成方法参数。
老周的习惯是,示例学习效率高。所以,我不多说理论的东西,来看例子。
别看这代码貌似有点长,其实就是声明一个方法,然后添加三个参数。参数的声明属于表达式,因此用到CodeParameterDeclarationExpression类,Type属性设置参数的类型。
示例代码中,CodeCommentStatement表示方法体中包含注释。
生成的方法如下图所示。

默认情况下,参数为输入参数,我们知道,还有两种方法参数——输出参数、引用传参。
CodeParameterDeclarationExpression 公开 Direction 属性,专门用于设置参数的方向,输入参数是默认值,因此可以不显式赋值,另外两个值就是Ref和Out。
下面代码将生成一个带有 out 参数的方法。
要让参数变为输出参数,就要把 Direction 属性设置为 Out。
请看结果。

知道如何定义 out 参数,那ref参数就简单了,比如下面例子。
生成代码如下。

OK,今天的内容就讲完了,东西不多,也不难。下一篇文章,老周继续厚着脸皮和各位探讨 CodeDom,下一次将介绍一下特性的定义。
相关文章
-
【.net 深呼吸】细说CodeDom(8):分支与循环
【.net 深呼吸】细说CodeDom(8):分支与循环
- 互联网
- 2026年04月04日
-
【4Opencv】如何识别出轮廓准确的长和宽
【4Opencv】如何识别出轮廓准确的长和宽
- 互联网
- 2026年04月04日
-
【a202】&&【9208】输油管道问题
【a202】&&【9208】输油管道问题
- 互联网
- 2026年04月04日
-
【.net 深呼吸】设置序列化中的最大数据量
【.net 深呼吸】设置序列化中的最大数据量
- 互联网
- 2026年04月04日
-
【.net 深呼吸】将目录树转化为文本
【.net 深呼吸】将目录树转化为文本
- 互联网
- 2026年04月04日
-
『练手』004 Laura.SqlForever如何扩展 导航栏 工具栏 右键菜单 插件
『练手』004 Laura.SqlForever如何扩展 导航栏 工具栏 右键菜单 插件
- 互联网
- 2026年04月04日






