VB.NET可选参数的默认值必须是一个常数表达式。
创新互联为企业级客户提高一站式互联网+设计服务,主要包括成都做网站、成都网站设计、重庆APP开发、重庆小程序开发、宣传片制作、LOGO设计等,帮助客户快速提升营销能力和企业形象,创新互联各部门都有经验丰富的经验,可以确保每一个作品的质量和创作周期,同时每年都有很多新员工加入,为我们带来大量新的创意。
过程定义中跟在可选参数后的每个参数也都必须是可选的。
下面的语法显示带VB.NET可选参数的过程声明:
Sub sub name(ByVal parameter 1 As data type 1,
Optional ByVal parameter 2 As data type 2 = default value)
调用带VB.NET可选参数的过程
过程在运行时无法检测到给定的参数是否已被省略,或者调用代码是否已显式提供默认值。如果需要弄清楚这一点,可以设置一个不可能的值作为默认值。下面的过程定义了可选参数 office,并测试其默认值 QJZ 以查看它在调用中是否已被省略:
Visual Basic
Sub notify(ByVal company As String, Optional ByVal office As String = "QJZ")
If office = "QJZ" Then
Debug.WriteLine("office not supplied -- using Headquarters")
office = "Headquarters" End If
' Insert code to notify headquarters or specified office.
End Sub
如果可选参数是像 String 这样的引用类型,只要它不是该变量所预期的值,就可以使用 Nothing 作为默认值。
VB.NET可选参数和重载
定义带可选参数的过程的另一种方法是使用重载。如果有一个可选参数,可以定义过程的两个重载版本,一个接受此参数,另一个则不带参数。此方法随可选参数数目的增加而变得更复杂。然而,这样做的优点是可以完全确定调用程序是否提供了每个VB.NET可选参数。
为什么一定要用combobox 呢,非要用的话,在form_load 事件里为combobox 增加一个系统时间,或是增加一个time 控件,周期设定为一分钟,然后每周期都为combobox 增加一个系统当前时间,并把老的(前一分钟)的时间删掉。
str = "insert into out ( 姓名 , 租出日期 , 规格 , 数量 )values('" txtname.Text "','" txtday.Text "','" txtnorm.Text "','" txtamount.Text "')"
你的SQL语句不正确!这是我改后的,你测测!
首先,combobox控件里的项目编号,从0开始,既第1项是0,第2项是1,......
所以,我不知道你这个1是不是指第2项?
其次,要让Combobox.Text的值变化为第1项的内容,你应该这样:
Combobox.Text = Combobox.items(1) '注意,这个是显示第2项的内容
这样, Combobox.SelectIndex的值就是1了。