level 8
如
Private Type Student
Name As String * 8
Sex As String * 2
End Type
private 的使用在窗体模块中调用,但在类模块和标准模块中也能用,但这样做有什么用呢?
2023年10月16日 02点10分
2
level 13
这个是私有的,你得先确定在类模块和标准模块中也能用,除了你的VB有问题
调用类模块用new一个对象就可以,用户控件直接拖到窗体上和一般控件一样,属性页是在用户控件里用的(比如控件要加个设置PNG图片的功能,VB默认只支持bmp,就得用属性页来实现,其他属性或可不用属性页)
2023年10月16日 04点10分
3
能举个实例么?
2023年10月16日 06点10分
level 8
变长字符串存储空间为什么是10字节+字符串长度,有什么说头没有?
2023年10月19日 07点10分
4
level 8
枚举类型的书写位置在哪里,是在窗体模块?还是标准模块?它与记录类型有什么区别
2023年10月19日 07点10分
5
level 8
for each……next语句如果用做一般数组和集合,怎么用?能分别举出一个例子吗
2023年10月19日 07点10分
6
level 12
一,类模块的使用
VB6的类是进程内COM服务器,拥有双接口
1, Iunknown
dim obj as new class1 '声明变量时直接实例化对象
obj.xxx(xxx表示类成员函数) 这样直接调用类中成员函数效率高。
2,IDispatch
dim obj as class1 或且 dim obj as object
set obj = class1 ‘实例化对象
obj.xxx (xxx表示类中成员内部类函数)
这样调用是走的IDispatch接口,内部会通过,Dispatch.GetIDsofName 和 Dispatch.Invoke 分发调用类成员函数,效率较低。
二, Private 修饰符,表示变量,函数,结构体等为模块私有,仅在本模块内有效,所有模块都可以使用Private 修饰符,不仅仅在窗体模块
三,变长字符串存储空间应该只有4字节吧(字符串指针),那来的10字节+长度,
四,枚举类型,跟常量感觉也没什么区别,爱用啥用啥,什么模块内都可以写
五 for each .......next
dim s() as variant,n as variant
s = array(1,2,3,4,5)
for each n in s
msgbox n
next
2023年10月19日 11点10分
8
level 8
为什么有的书上这样写
Dim a(,) '声明一个二维动态数组
是不是由于版本的不同,最新的版本是6.0不可以,早期的版本是严格区分的(一维动态数组和二维动态数组)?
2023年10月20日 03点10分
10
是版本原因,但你正好说反了,早期的6.0版本不可以这样写,新版的.net版本可以
2023年10月20日 11点10分
level 8
当前版本
Visual Basic 16.9/Visual Studio 2019 版本 16.9
早期版本
Visual Basic 16.0/Visual Studio 2019 版本 16.0
Visual Basic 15.5/Visual Studio 2017 版本 15.5
Visual Basic 15.3/Visual Studio 2017 版本 15.3
Visual Basic 15/Visual Studio 2017
Visual Basic/Visual Studio 2015
Visual Basic/Visual Studio 2013
.NET Compiler Platform(“Roslyn”)的技术预览
Visual Basic/Visual Studio 2012
Async 和 await 关键字、迭代器、调用方信息特性
Visual Basic, Visual Studio 2010
自动实现的属性、集合初始值设定项、隐式行继续符、动态、泛型协变/逆变、全局命名空间访问
Visual Basic/Visual Studio 2008
语言集成查询 (LINQ)、XML 文本、本地类型推断、对象初始值设定项、匿名类型、扩展方法、本地 var 类型推断、lambda 表达式、if 运算符、分部方法、可以为 null 的值类型
Visual Basic/Visual Studio 2005
My 类型和帮助程序类型(对应用、计算机、文件系统、网络的访问)
Visual Basic/Visual Studio .NET 2003
移位运算符、循环变量声明
Visual Basic/Visual Studio .NET 2002
Visual Basic.NET 的首次发布
1998-10 Visual Basic 6.0 正式发布
1997-02 Visual Basic 5.0 包含了对用户自建控件的支持,且从这个版本开始 VB 可以支持中文。
1995-08 Visual Basic 4.0 发布了32位和16位的版本。其中包含了对类的支持。
1993-06 Visual Basic 3.0 包含一个数据引擎,可以直接读取 Access 数据库。
1992-11 Visual Basic 2.0 对于上一个版本的界面和速度都有所改善。
1992-09 Visual Basic 1.0 DOS 版本
1991-04 Visual Basic 1.0 Windows 版本 ,VB编程语言正式诞生
功能特点
Visual Basic 16.9
Visual Basic 16.9 允许使用仅限 init 属性。
Visual Basic 16.0
Visual Basic 16.0 侧重于向 .NET Core 提供 Visual Basic 运行时 (microsoft.visualbasic.dll) 的更多功能,这是 Visual Basic 侧重于 .NET Core 的第一个版本。Visual Basic 运行时的许多部分都依赖于 WinForms,它们将添加到 Visual Basic 的更高版本中
2023年10月20日 14点10分
11
level 8
Dim a%(1 To 10), max%
Randomize
For Each n In a
n = Int(Rnd * 90) + 10
Print n;
Next
Print
max = a(1)
For Each n In a
If CInt(n) > max Then max = CInt(n)
Next
Print max
max结果为什么是0?
n是一个变体类型变量,怎么转化成一个整型数?
2023年10月23日 01点10分
12
level 15
就以你的四张图为例吧
用Private的两张图(图三和图四),都是错误的,在一个模块中用Private声明的任何东西都不能在其他模块当中使用;如果用Private声明了某种类型,那么在哪个模块中声明的,就只能在那个模块中使用,比如图三,Student是标准模块的私有类型,就只能在标准模块中使用
用Public的两张图,图一是
正确的
,可以这样声明类型并在其他模块中使用;图二是错误的,不能在类模块中声明Public Type,不过Public Enum在哪里都是可以用的
最后关于枚举类型再说几句:其实枚举类型不是你这么用的,枚举类型的成员不是变量的成员,而是类型的成员,也就是说你这里的 变量.a 是错误的,而写成 xin.a 才是正确的;实际上,通常连这个类型前缀都不用写的,直接用a就行,你记住这样一句话:Enum类型就是一组Long型的常量,也就是说,你这里的a和b就相当于两个用Const定义的常量
那么枚举类型的变量又该怎么用呢?比如可以用枚举类型的成员给变量赋值:
变量 = a
可以用任意整数给枚举类型的变量赋值,就好像它们是Long型的变量一样(其实从本质上说就是):
变量 = 15
也可以用枚举类型的变量或成员给其他类型的变量赋值:
Dim x As Integer
x = b
x = 变量
说到VB内置的枚举类型,其实MsgBox函数的第二个参数以及返回值就是枚举类型的(不是同一个枚举类型),你在代码中可以写vbOKCancel、vbYes之类的东西,这些就是枚举类型的成员;另外,还可以写vbYesNo+vbInformation这样的运算,说明枚举类型的值是可以进行运算的(之前也说过了,枚举类型本质上就是Long类型)
2023年10月25日 12点10分
15
感谢大神,终于弄清楚了。另外,我设的那个变量名不太恰当,实质上枚举类型只能使用常量,不能使用变量。枚举的作用是管理和使用常量。
2023年10月26日 01点10分
vbYesNo这样一类的在教材中叫做内部符号常量,准确叫法是枚举类型常量
2023年10月26日 01点10分