一、主模块代码:

'Fig.4.16:GradeBookTest.vb
'Create and manipulate a GradeBook object;illustrate validation
Module GradeBookTest
'Main begins program execution
Sub Main()
'creat GradeBook object
Dim gradeBook1 As New GradeBook("CS101 Introduction to Visual Basic Programming") '这里的对象自带了括号和参数,GradeBook类中必须有New类的构造函数
Dim gradeBook2 As New GradeBook("CS102 Data Structures") '不然的话运行会错误,并提示Public Sub New()参数太多 'display each GradeBook's course name(by invoking Get)
Console.WriteLine("gradeBook1's initial course name is:" & gradeBook1.CourseName)
Console.WriteLine("gradeBook2's initial course name is:" & gradeBook2.CourseName)
Console.WriteLine() 'place in gradeBook's course name a valid-length String
gradeBook1.CourseName = "CS101 VB Programming" 'display each GradeBook's course name (by invoking Get)
Console.WriteLine("gradeBook1 course name is:" & gradebook1.CourseName)
Console.WriteLine("gradeBook2 course name is:" & gradeBook2.CourseName) Console.ReadKey()
End Sub 'Main End Module 'GradeBookTest

  二、类模块代码

'Fig. 4.15:GradeBook.vb
'GradeBook class with a property that performs validation.
Public Class GradeBook
Private courseNameValue As String 'course name for this GradeBook 'constructor initializes course name with String supplied as argument
Public Sub New(ByVal name As String) '|--关键字New调用类的构造函数,执行初始化任务,构造函数名称必须是New-|
CourseName = name '|--构造函数:类名+括号;这里括号中的形参就是主模块中类对象中的实参--|
End Sub '|--若主模块中创建一个类对象没有带括号,这里也可以不显式包含构造函数-|
''''''''''''''''''''''''''''''''''''''''''|--把name直接赋值给CourseName就相当于执行了CourseName属性-----------| 'property that gets and sets the course name;the Set accessor
'ensures that the course name has at most 25 characters.
Public Property CourseName() As String
Get 'retrieve courseNameValue
Return courseNameValue
End Get
Set(ByVal value As String) 'set courseNameValue
If value.Length <= 25 Then
courseNameValue = value
End If
If value.Length > 25 Then
courseNameValue = value.Substring(0, 25)
Console.WriteLine("Name""" & value & """exceeds maximum length (25).")
Console.WriteLine("Limiting course name to first 25 characters." & vbNewLine)
End If
End Set
End Property 'CourseName 'display a welcome message to the GradeBook user
Public Sub DisplayMessage()
'use property CourseName to display the
'name of the course this GradeBook represents
Console.WriteLine("Welcome to the grade book for" & vbNewLine & CourseName & "!")
End Sub 'DisplayMessage
End Class 'GradeBook

  三、运行结果

注:这个简单的例子充分体现了类模块中属性访问符Set对数据进行验证的优点和威力。

来源:Visual Basic 2008 How To Program P107

活代码LINQ——04的更多相关文章

  1. 活代码LINQ——09

    一.代码 ' Fig. 9.7: LINQWithListCollection.vb ' LINQ to Objects using a List(Of String). Module LINQWit ...

  2. 活代码LINQ——06

    一.模块代码 ' Fig. 9.4: LINQWithArrayOfObjects.vb ' LINQ to Objects using an array of Employee objects. M ...

  3. 活代码LINQ——01

    序言 此系列的所有代码都是运行在Win 7 64位 + Visual Basic 2008 Express Edition的环境中 之所以学习List集合类,是因为我们先前学习的数组自身的缺陷: 1. ...

  4. 活代码LINQ——08

    一.模块代码 ' Fig. 9.6: ListCollection.vb ' Generic List collection demonstration. Module ListCollection ...

  5. 活代码LINQ——07

    来源说明:https://blog.csdn.net/sha574810590/article/details/40738069 在LINQ中,数据源和查询结果实际上都是IEnumerable< ...

  6. 活代码LINQ——05

    片段代码: ' Exercise 9.3 Solution: Invoice.vb ' Invoice class. Public Class invoide ' declare variables ...

  7. 活代码LINQ——03

    一.主模块代码: 'Fig.4.13:GradeBookTest.vb 'GradeBook constructor used to specify the course name at the 't ...

  8. 活代码LINQ——02

    一.复习基础——属性与实例变量 'Fig. 4.8:GradeBookTest.vb 'Create and manipulate a GradeBook object. Module GradeBo ...

  9. Linq to EF 与Linq to Object 使用心得

    大家都知道Linq既可以用来查询数据库对象(我这里指的是Entity FrameWork里的Model对象),也可以用来查询内存中的IEnumerable对象. 两者单独查询时都不会出现什么问题,不过 ...

随机推荐

  1. JAVA随笔----浅谈lombok注解

    在Java开发中,注解可谓是帮了大忙.注解的使用帮助我们简化了代码,让代码更加简洁.今天就来谈谈常用的Lombok注解. lombok注解文档 lombok官方下载地址 先看一下lombok支持的一些 ...

  2. 打包加载 AssetBundle

    1.先创建Asset序列化(单个文件夹所在文件夹路径,会遍历这个文件夹所有的Prefab,所有的Prefab名字不能重复,必须保证名字得唯一性),配置好ConfigAB表 /* ######### # ...

  3. Manjaro 安装svn客户端,以及checkout使用命令

    安装svn sudo pacman -S svn checkout操作指令 svn co http://xxxxxxx /home/xx update 更新版本 svn up [文件/目录] 直接使用 ...

  4. 【做题】UOJ450 - 复读机——单位根反演

    原文链接 https://www.cnblogs.com/cly-none/p/UOJ450.html 题意:请自行阅读. 考虑用生成函数来表示答案.因为秒之间是有序的,所以这应当是个指数生成函数.故 ...

  5. Java学习笔记_ 数据库隔离级别和事务传播行为

    转自: https://blog.csdn.net/qq_38545713/article/details/79779265 一:数据库的事物隔离级别与传播行为总结:              很多人 ...

  6. Go 嵌入类型

    文章转载地址:https://www.flysnow.org/2017/04/06/go-in-action-go-embedded-type.html 嵌入类型或嵌套类型,这是一种可以把已有类型的声 ...

  7. Moqui 代码解释

    Service: entity-find 和 entity-find-one 的区别: <entity-find entity-name="" list="&quo ...

  8. 初学者易上手的SSH-spring 01控制反转(IOC)

    这章开始学习SSH中最后的一个框架spring.Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用. 首先就来学习一下I ...

  9. webdirver.Chrom() selenium webdirver调用谷歌浏览器的问题解决

    第一个坑: 没有将谷歌驱动放到   /usr/local/bin  目录下 第二个坑: 没有将谷歌浏览器.exe放在    /usr/local/bin  目录下(注意:驱动和浏览器在一个路径下才能使 ...

  10. Asp.Net MVC 从客户端<a href="http://www....")中检测到有潜在危险的 Request.Form 值

    Asp.Net MVC应用程序, Framework4.0: 则需要在webconfig文件的 <system.web> 配置节中加上 <httpRuntime requestVal ...