一、主模块代码:

'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. {408} client block at 0x005D4D10, subtype 0, 64 bytes long.a CButton object at $005D4D10, 64 bytes long

    现象:mfc动态生成了很多控件,new的,退出时也delet了,但是还是出现了标题的错误 解决:在任何可以执行的地方加代码: CMFCVisualManager ::SetDefaultManager ...

  2. POI中excle样式怎么写

    POI中可能会用到一些需要设置EXCEL单元格格式的操作小结: 先获取工作薄对象: HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb ...

  3. grep 以及find 命令

    grep 以及find 命令 1. find 命令 Linux 下find 命令在目录结构中搜索文件,并执行指定的操作.Linux 下find 命令提供了相当多的查找条件,功能很强大.由于find 具 ...

  4. 详解Bootstrap实现基本布局的方法

    看到了一篇 20 分钟打造 Bootstrap 站点的文章,内容有点老,重新使用bootstrap教程实现一下,将涉及的内容也尽可能详细说明. 1. 创建基本的页面我们先创建一个基本的 HTML 模板 ...

  5. TeamView工具在提示“似乎用于商用环境”的处理方式

    第一种:通过修改这个文件/也有可能删除(没有尝试过)

  6. mongoose一看就会的基本操作

    Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具 那么要使用它,首先你得装上node.js和mongodb,关于mongodb的安装和操作介绍可以参考:http: ...

  7. 【BZOJ】 1041: [HAOI2008]圆上的整点

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1041 ${x^{2}+y^{2}=r^{2} }$ ${\Rightarrow y^{2} ...

  8. grep 从文件内容中查找

    grep -rin [查找目标] [查找范围] 例子:在当前目录下的文件内查找test字符串 grep -rin test ./

  9. (简单)华为P9plus VIE-AL00的usb调试模式在哪里开启的经验

    每次我们使用pc接通安卓手机的时候,如果手机没有开启Usb调试模式,pc则没能成功检测到我们的手机,有时,我们使用的一些功能比较强的的app比如之前我们使用的一个app引号精灵,老版本就需要打开Usb ...

  10. 合并两个有序链表(java实现)

    题目: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1-&g ...