基础语法:在VB.net里面 操作 类属性的读取和写入

以下是一个独立的类

Public Class Class1
    Private _Java As String
    Private _CSharp As String
    Private _VBNet As String
    Private _SQLServer As String

    Property Java() As String

        Get '获取属性的值
            Return _Java
        End Get

        Set(ByVal value As String) '设定属性的值
            _Java = value
        End Set
    End Property

    Property CSharp() As String

        Get '获取属性的值
            Return _CSharp
        End Get

        Set(ByVal value As String) '设定属性的值
            _CSharp = value
        End Set
    End Property

    Property VBNet() As String

        Get '获取属性的值
            Return _VBNet
        End Get

        Set(ByVal value As String) '设定属性的值
            _VBNet = value
        End Set
    End Property

    Property SQLServer() As String

        Get '获取属性的值
            Return _SQLServer
        End Get

        Set(ByVal value As String) '设定属性的值
            _SQLServer = value
        End Set
    End Property

End Class

以下是在一个窗口程序里面 的一个按钮的点击函数

Public Class Form1

    
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim TestClass1 As New Class1
        TestClass1.SQLServer = TextBox1.Text
        TestClass1.Java = TextBox2.Text
        TestClass1.CSharp = TextBox3.Text
        TestClass1.VBNet = TextBox4.Text

        ListBox1.Items.Add("程序员:" & Me.TextBox5.Text)
        ListBox1.Items.Add("SqlServer 成绩:" & TestClass1.SQLServer)
        ListBox1.Items.Add("Java  成绩:" & TestClass1.Java)
        ListBox1.Items.Add("C# 成绩:" & TestClass1.CSharp)
        ListBox1.Items.Add("VBNET  成绩:" & TestClass1.VBNet)



    End Sub
End Class

运行效果

说明:

1)estClass1.SQLServer = TextBox1.Text 这个代码 ,本质是调用了

 Set(ByVal value As String) '设定属性的值
            _SQLServer = value
        End Set

2)ListBox1.Items.Add("SqlServer 成绩:" & TestClass1.SQLServer)

本质是调用了

        Get '获取属性的值
            Return _SQLServer
        End Get

××××

通过程序断点后,可以监控这个流程

<think>我们正在讨论VB.NET中定义类属性语法。根据引用[3]中的信息,类定义包括状态(变量)行为(方法)。属性(Property)是类的一种成员,它提供了一种灵活的机制来读取写入或计算私有字段的值。在VB.NET中,定义类属性通常使用Property关键字。一个完整的属性通常包括:-一个私有字段(用于存储属性值)-Get访问器(用于读取属性值)-Set访问器(用于设置属性值)基本语法结构如下:```vb.netPublicClassClassName'私有字段PrivatefieldNameAsDataType'属性定义PublicPropertyPropertyNameAsDataTypeGetReturnfieldNameEndGetSet(valueAsDataType)fieldName=valueEndSetEndPropertyEndClass```也可以使用自动实现的属性(Auto-ImplementedProperties),如果不需要在获取或设置时执行额外的逻辑,可以简化写法:```vb.netPublicClassClassNamePublicPropertyPropertyNameAsDataTypeEndClass```示例:下面创建一个Person类,其中包含NameAge两个属性,其中Name使用自动实现的属性,Age使用带有验证逻辑的完整属性。```vb.netPublicClassPerson'自动实现的属性PublicPropertyNameAsString'带有私有字段验证逻辑的属性Private_ageAsIntegerPublicPropertyAgeAsIntegerGetReturn_ageEndGetSet(valueAsInteger)Ifvalue<0ThenThrowNewArgumentException("年龄不能为负数")EndIf_age=valueEndSetEndPropertyEndClass```在这个例子中:-Name属性是自动实现的,编译器会自动生成一个私有字段默认的Get/Set访问器。-Age属性有一个私有字段_age,并在Set访问器中加入了验证逻辑,确保年龄不为负数。另外,还可以定义只读属性(只有Get访问器)或只写属性(只有Set访问器),但只写属性较少使用。例如:```vb.netPublicReadOnlyPropertyFullNameAsStringGetReturnFirstName&""&LastNameEndGetEndProperty```注意:在VB.NET中,也可以使用WriteOnly属性,但通常不常见。以上是VB.NET中定义类属性的基本语法示例。§§相关问题§§1.VB.NET中如何实现属性的只读或只写?2.VB.NET中,自动实现的属性有什么限制?3.VB.NET属性中如何添加数据验证逻辑?4.VB.NET中属性字段有什么区别?</think>### VB.NET 类属性语法详解 在VB.NET中,类属性通过 `Property` 关键字定义,包含 `Get` `Set` 访问器来控制数据的读写。以下是核心语法示例: #### 基本语法结构 ```vb.net Public Class ClassName ' 私有字段(存储实际值) Private _fieldName As DataType ' 属性定义 Public Property PropertyName As DataType Get Return _fieldName ' 读取数据 End Get Set(value As DataType) _fieldName = value ' 写入数据 End Set End Property End Class ``` #### 完整示例 ```vb.net Public Class Person ' 私有字段 Private _name As String Private _age As Integer ' 字符串属性(带数据验证) Public Property Name As String Get Return _name End Get Set(value As String) If String.IsNullOrEmpty(value) Then Throw New ArgumentException("姓名不能为空") End If _name = value End Set End Property ' 只读属性(计算属性) Public ReadOnly Property BirthYear As Integer Get Return DateTime.Now.Year - _age End Get End Property ' 自动实现属性(编译器自动生成字段) Public Property Address As String End Class ``` #### 关键特性说明: 1. **访问控制** - `Public`/`Private` 控制属性可见性 - `ReadOnly` 只读属性(仅含 `Get`) - `WriteOnly` 只写属性(仅含 `Set`) 2. **数据验证** 在 `Set` 访问器中添加逻辑(如示例中的空值检查) 3. **自动属性** ```vb.net Public Property Email As String ' 编译器自动生成私有字段 ``` 4. **计算属性** 无字段存储,通过计算返回值(如 `BirthYear`) > 引用说明:VB.NET类属性封装了状态数据,通过访问器控制行为逻辑,符合面向对象设计原则[^3]。自动属性简化了基础属性的定义过程[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值