【发布时间】:2012-08-09 23:32:53
【问题描述】:
我在这里有一点问题:但这个问题适用于任何方法重载。
我有一个方法声明,例如:(女巫不完全符合要求)
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 是否允许“默认”定义方法,以防构建器无法决定使用哪一种以及语法是什么?
帮助的坦克。
编辑:这两个调用看起来像:
SetGridFormat(dg, New Unit(100, UnitType.Percentage), New Unit(100, UnitType.Percentage), True)
SetGridFormat(dg, 100, 100,True)
从回复中,我只需要指定一些内容:大多数答案在大多数情况下都有效,但排除我必须处理的有问题的情况,其中 2 个值可以设置为空(不需要特定大小)。
SetGridFormat(dg, Nothing, Nothing, True)
在这种情况下,从编译器的角度来看,两个方法声明是相同的:
这可能是问题的根本原因。如果这些情况不存在,我会非常失望。 :(
我的问题是在这种情况下有没有办法强制编译器使用特定的方法调用?
【问题讨论】:
-
我认为没有“默认”重载说明符。什么是
Unit(类、枚举等)? -
调用时传递给方法的参数类型是什么。显然你传递的既不是整数也不是单位。
标签: vb.net overloading