vb.net可选参数 vb中参数不可选

VB可选参数和数组参数的问题

Public Function Check(Byval I as long,optional J as long=10)

成都创新互联是一家专注于成都网站制作、成都做网站与策划设计,昭苏网站建设哪家好?成都创新互联做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:昭苏等地区。昭苏做网站价格咨询:13518219792

这样是不会出错的这是因为可选参数之后不能有非可选参数

还有就是数组。

Public Function Check(byVal I()as long)

这样会出错这是因为数组不能ByVal只能用Byref

Public Function Check( I()as long)

这样就不会出错了,

Public Function Check(optional I as long ,optional J() as long)

这样也是会出错,这是因为数组不能当可选参数

那怎么让数组变为可选参数呢?

其实很简单

Public Function Check(optional I as long,optional J as long)

这样就行了,可是你又会问,我要传数组啊,你怎么弄个Long型值?

这就是VB有一点怪的地方

你可以声明一个API如下

Private Declare Function VarPtrArray Lib "msvbvm60.dll" Alias "VarPtr" (Var() As Any) As Long

这就可以了,你可以这样传数组:

DIm A(5)as long

call Check(0,VarPtrArray(a))

就可以了

这样只要第二个传过来的值非零就一定是数组。

怎么样得到数组的大小和方法就去看我的空间文章吧,里面有个笨方法。

vb自定义函数可选参数如何设置

定义的时候加上Optional关键字,就可以了

要注意的是,可选参数后面如果还有其他的参数,则必须都是可选参数。

另外,定义可选参数,需要定义默认值。如果调用时,没有指定这个可选参数的值,则使用默认值

Public

Sub

AddItem(ByVal

Item

As

String,

Optional

ByVal

Index

As

integer=0)

Combo1.AddItem

Item,

Index

End

Sub

“VB的可选参数”是什么意思?

Optional 表示该参数为可选的,即不一定必须有的,当Optional 时,参数可设置默认值

Optional FindAll As Boolean = False,和Optional FindAll As Boolean是同效的,因为Boolean 的默认值就是False,如同Integer的默认值为0一样。

Optional a As Integer= 1000,如果未指定a的值,则a的值默认为1000:

如:

function aaaa(Optional a As Integer= 1000)

aaaa=a*2

end function

msgbox aaaa,结果为2000

msgbox aaaa(100),结果为200

function bbbb(Optional a As Integer)

bbbb=a*2

end function

msgbox bbbb,结果为0

msgbox bbbb(100),结果为200

VB.net 和C#.net 各有什么优缺点

C#.net优点:

运算符重载。不安全代码(指针和固定内存区)、 无符号整数、移位运算。

VB的优点: 

即时编译、静态事件绑定、条件异常捕获、COM兼容类、宽松的类型检查和变量声明、Visual Basic Runtime库、可选参数、带参数属性、模块等语言特征、动态数组。

通过VB.NET开发好的程序绝对没有问题(包括Direct X游戏开发)。虽然VB.NET的资料少,但是只要C#支持的VB.NET都支持(大体上这样,因为都要经过MSIL中间环节。除了指针之类的VB.NET不支持C#支持,但是没有多大实际用处)。

vb.net的资料以英文资料居多(只有英文资料才有看头,中国的没有什么好资料),得看看英文水平过不过关。还有VB.NET的ide也比C#的IDE好得多,代码看得也舒服。(C#的大括号{}太烦人)。

至于VB6对C的帮助,只是理解上会容易一些,其它用处不大。有VB6的基础学VBNET会方便一些,但是并不是会VB6就会VB.NET,它们差别也不小。

扩展资料:

NET、C#和ASP.NET之间的区别 :

1、NET是一个平台,一个抽象的平台的概念。

NET 平台其本身实现的方式其实还是库,抽象层面上来看是一个平台。

基本可以理解的NET核心就是NETFramwork。

NETFramework包括两个关键组成元素:

a. CommonLanguageRuntime,公共语言运行时(CLR0)-提供内在管理,代码安全性检测等功能。

b. NETFrameworkClassLibrary,.NET 框架类库(FLC)-提供大量应用类库,提高开发效率。

学习NET Framework 是所有.NET开发人员都必须的,否则开发NET程序永远都是停留在‘外功’的招式,NETramework 是NET开发高手的‘内功’修行之一。

2、C#是一个程序设计语言,仅仅是一个语言。

程序设计语言仅仅是为了方便开发人员和计算机沟通的工具,虽然 C#语法相对 C 和 C+要多一些,但是相对来看 C#语法都比较固定,这样使用起来却都很容易。我认可一位朋友说的,C#的语法更严谨!

这里回过来看看NET和C#的关系,不得不提的是NET程序的执行过程。

C#符合NETCLR 中的公共语言运行规范。CLS:commonlanguagespecification,当然所有的NET Language 都是符合这个规范的例如:VB.NET、XAML 和 C++/CL等等。

C#需要符合NETCLS,是因为NETCLR和JAVA虚拟机类似,有一个中间语言共机器来执行。所有不同语言的.NET代码在执行前会被编译成同样的中间语言(MSIL),所以所有NET 支持语言都必须符合符合CLS 规范。

P.S:如果做.NET3.0XAML开发的朋友,可以尝试下ildasm.exe看看XAML的应用程序,会发现原来 XAML其实很简单。

3、ASP.NET是一个网站开发的技术,仅仅是.NET框架中的一个应用模型。

用微软公司ASP.NET快速入门中的一句话来解释,ASP.NET是用于生成基于Web的应用程序的内容丰富的编程框架。

ASP.net 和C#的区别:

编写asp.net通常包括两部分的代码:网页层和后台处理层,网页就是用标记语言来写的,而网页对应的后台处理程序则需要.net语言来完成,目前主要是采用c#和vb.net。

可以说整个的asp.net网站通过c#或者vb.net来实现。而c#则是ms .netframework的主要语言,可以用在网站,桌面应用等方面。可以算是一种比较流行的编程语言。


文章题目:vb.net可选参数 vb中参数不可选
当前地址:http://scyanting.com/article/dopcsoh.html