VB.NET可选参数如何在“引擎盖下”工作?它们是否符合CLS标准?
发布时间:2020-12-17 00:06:01 所属栏目:大数据 来源:网络整理
导读:假设我们有以下方法声明: Public Function MyMethod(ByVal param1 As Integer,_ Optional ByVal param2 As Integer = 0,_ Optional ByVal param3 As Integer = 1) As Integer Return param1 + param2 + param3End Function VB.NET如何使可选参数在CLR的范围
假设我们有以下方法声明:
Public Function MyMethod(ByVal param1 As Integer,_ Optional ByVal param2 As Integer = 0,_ Optional ByVal param3 As Integer = 1) As Integer Return param1 + param2 + param3 End Function VB.NET如何使可选参数在CLR的范围内工作?可选参数是否符合CLS?
有趣的是,这是通过反射器获得的反编译C#代码.
public int MyMethod(int param1,[Optional,DefaultParameterValue(0)] int param2,DefaultParameterValue(1)] int param3) { return ((param1 + param2) + param3); } 请注意Optional和DefaultParameterValue属性.尝试将它们放在C#方法中.您会发现仍然需要将值传递给方法.但是在VB代码中,它变成了Default!话虽如此,我个人从未在VB代码中使用Default.感觉就像一个黑客.重载方法对我来说很有用. 在处理Excel Interop时,默认确实有帮助,这在C#中开箱即用是很麻烦的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |