首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

构造体变量

2013-08-01 
结构体变量有这么一条语句,搞不明白为什么要这么写:Dim aline As Point() {New Point(0, 0), New Point(

结构体变量
有这么一条语句,搞不明白为什么要这么写:
Dim aline As Point() = {New Point(0, 0), New Point(2, 2)}

问题1:aline是结构体变量,声明变长数组为什么不写成这样:Dim bline() As Point = {New Point(0, 0), New Point(2, 2)},而把括号写在Point结构类型后面。两种写法有什么区别?
问题2:Point是结构体,又不是类,为什么用New关键字?
[解决办法]
1. VB定义的语法,语法就像主谓宾那样,可以减少句子的二义性~
   可以看看《数学之美》前google工程师,专门搞语言搜索的~

2. new是分配内存,并返回内存位置 与结构和类无关

int i = new int();
i = 10;
Console.WriteLine(i);

[解决办法]
C#和VB定义数组时()都是跟在类型后面 。跟在变量后面好像必须先分配地址,C#里面还必须在非安全区域蔡能这么用。。

Point p=new Point(x,y);

不new就没有地址,调用是没有实际对象。
[解决办法]
vb的数组括号是可以在前面可以在后面,在前面是和以前的语法兼容,在后面是更规范

Dim bline() As Point 
Dim bline As Point()

在前面是定义一个Point类型的bline函数?语法上说不通。
在后面定义了一个Point()数组,区别Point结构,逻辑上更通顺。
和 Dim bline As Point 区别在于类型不同,而不是引用的变量不同。

热点排行