扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
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))
就可以了
这样只要第二个传过来的值非零就一定是数组。
怎么样得到数组的大小和方法就去看我的空间文章吧,里面有个笨方法。
定义的时候加上Optional关键字,就可以了
要注意的是,可选参数后面如果还有其他的参数,则必须都是可选参数。
另外,定义可选参数,需要定义默认值。如果调用时,没有指定这个可选参数的值,则使用默认值
Public
Sub
AddItem(ByVal
Item
As
String,
Optional
ByVal
Index
As
integer=0)
Combo1.AddItem
Item,
Index
End
Sub
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
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的主要语言,可以用在网站,桌面应用等方面。可以算是一种比较流行的编程语言。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流