当然可以的,需要System.Runtime.InteropServices 命名空间中的 Marshal 类
在西乌珠穆沁等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、成都网站设计 网站设计制作定制网站,公司网站建设,企业网站建设,成都品牌网站建设,成都营销网站建设,成都外贸网站建设公司,西乌珠穆沁网站建设费用合理。
Imports System.Runtime.InteropServices '这里一定要有
Public Class Form1
Public Structure m_Point
Dim x As Integer
Dim y As Integer
End Structure
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer = 50
Dim ai() As Integer = {1, 2, 3, 4, 5}
Dim pi As IntPtr = GCHandle.Alloc(i, GCHandleType.Pinned).AddrOfPinnedObject() '取得整形变量的指针
Dim pai As IntPtr = GCHandle.Alloc(ai, GCHandleType.Pinned).AddrOfPinnedObject() '取得整形数组首地址指针
MsgBox(Marshal.ReadInt32(pi, 0)) '读回整形变量指针指向的值
MsgBox(Marshal.ReadInt32(pai, 0 * 4)) '读回数组的第一个元素
MsgBox(Marshal.ReadInt32(pai, 1 * 4)) '读回数组的第二个元素
MsgBox(Marshal.ReadInt32(pai, 2 * 4)) '读回数组的第三个元素
'-----下面是结构--------------------------
Dim m_p As New m_Point
m_p.x = 100
m_p.y = 50
Dim pm_p As IntPtr = GCHandle.Alloc(m_p, GCHandleType.Pinned).AddrOfPinnedObject() '取得结构首地址指针
MsgBox(Marshal.ReadInt32(pm_p, 0 * 4)) '读回结构的第一个值
MsgBox(Marshal.ReadInt32(pm_p, 1 * 4)) '读回结构的第二个值
End Sub
End Class
当用户可以设置或者得到属性的值的时候,这些属性就在改变。有此属性可以在设计的时候改变。用户可以在属性窗口设置这些属性的值,而不需要写任何代码,而有些代码在设计的时候是不能改变的,所以必须在运行的程序中写入一些设置属性的值的代码。
那些可以在运行的时候设置和读取的属性被称作"read-write"属性。而那些只能在运行的时候读取的代码称为"read-only"属性。
1.设置属性值
当需要改变一个对象的外观或者行为时,就可以改变对象的属性值。例如可以通过改变一个textbox控件的Text属性值,来改变Textbox里面的内容。
设置一个属性的值,可以用以下的语法:
object.property=expression
如下一些实例:
TextBox1.Top=200 '让Top属性值为200
TextBox1.Visible=True '显示TextBox
TextBox1.Text="hello" '在TextBox中显示"hello"
2.得到属性的值
当代码要对一个对象进行一些操作时,用户可能需要得到一个对象的状态,例如,在对一个TextBox控件进行下一步操作时,可能需要得知TextBox的text属性的值,等等。
通常情况下,用户可以通过下面这样的语法得到一个对象的属性值:
variable=object.property
用户可以把一个对象的属性值作为一个复杂表达式的一部分,而不需要先把属性值赋给一个变量再进行计算,下面这个例子就是改变一个radio按钮的属性的代码:
Private Sub cmdAdd_Click()
'[statements]
RadioButton1.Top=RadioButton1.top+20
'[statements]
End Sub
注意:如果用户需要多次使用一个属性值的话,那么先把属性值赋给一个变量,将会使效率更快一点。
Property用于标识一个类成员为属性而不是方法.属性可以被获取,属性在被获以的时候利用get句柄返回其值.属性可以被赋值,这个过程是由set句柄完成的.这两个句柄可以不同时存在.如果只有get而没有set,那属性就是只读的.如果只有set而没有get,那属性就是只写的.
就是定义了两个属性:s_name和s_sex
Overridable 表示这个属性可以被重载。