vb.net类属性地址 vbnet region

在VB.net中如何取变量、结构、数组、函数的地址?

当然可以的,需要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

设置和重设vb.net的属性

当用户可以设置或者得到属性的值的时候,这些属性就在改变。有此属性可以在设计的时候改变。用户可以在属性窗口设置这些属性的值,而不需要写任何代码,而有些代码在设计的时候是不能改变的,所以必须在运行的程序中写入一些设置属性的值的代码。

那些可以在运行的时候设置和读取的属性被称作"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

注意:如果用户需要多次使用一个属性值的话,那么先把属性值赋给一个变量,将会使效率更快一点。

关于vb.net中属性的定义

Property用于标识一个类成员为属性而不是方法.属性可以被获取,属性在被获以的时候利用get句柄返回其值.属性可以被赋值,这个过程是由set句柄完成的.这两个句柄可以不同时存在.如果只有get而没有set,那属性就是只读的.如果只有set而没有get,那属性就是只写的.

就是定义了两个属性:s_name和s_sex

Overridable 表示这个属性可以被重载。


网站栏目:vb.net类属性地址 vbnet region
分享路径:http://pwwzsj.com/article/ddooddc.html