我在这里有一个问题:但问题是适用于任何方法重载。方法超载作为默认
我有一个方法声明,如:(巫不完全匹配的要求)
Public Shared Sub SetGridFormat(ByRef grid As DataGrid, ByVal width As Integer, ByVal height As Integer, ByVal paging As Boolean)
所以我脑子里写的情况下,过载,我需要这一个:
Public Shared Sub SetGridFormat(ByRef grid As DataGrid, ByVal width As Unit, ByVal height As Unit, ByVal paging As Boolean)
这两个声明是相同的,但高度和宽度的类型。我得到了“重载解析失败,因为没有可访问的'SetGridFormat'是这些参数最具体的”错误。
问题是:vb.net是否允许“默认”定义方法,以防构建者无法决定使用哪一个以及语法是什么?
坦克帮助。
编辑:2调用看起来像:
SetGridFormat(dg, New Unit(100, UnitType.Percentage), New Unit(100, UnitType.Percentage), True)
SetGridFormat(dg, 100, 100,True)
从响应,我只需要指定的东西:大多数问题的答案将在大多数情况下工作,但不包括有问题的情况下,我不得不处理2个值可以设置为空的位置(不需要特定大小)。
SetGridFormat(dg, Nothing, Nothing, True)
在这种情况下,两个方法声明是在视点编译相同:
这可能是问题的根源。如果没有这些案件,我会非常失望。 :(
我的问题是有没有办法强制编译器在这种情况下使用特定的方法调用?
我不认为有一个“默认”重载说明符。什么是“单元”(一个类,一个枚举等)? – 2012-08-09 13:03:58
当您调用该方法时,传入该方法的参数的类型是什么。显然你传递的是既不是整数也不是单位。 – 2012-08-09 13:19:53