一、主模块代码:

'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. MemoryStream请求与接收

    //流请求 static void Main(string[] args) { Console.WriteLine("Hello World!"); //Console.ReadL ...

  2. Python day 05

    day05 数据类型 今日内容 字典 补充 .extend() users = [1,2,3,4] people = [5,6,7,8] users.extend(people) people.ext ...

  3. Jenkins学习

    1.jenkins启动卡在密码初始化处不动的情况,参照: https://blog.csdn.net/lylload/article/details/82754101 https://blog.csd ...

  4. MpVue 致力打造H5与小程序的代码共用

    MpVue是什么 基于 Vue.js 的小程序开发框架 从底层支持 Vue.js 语法和构建工具体系. 使用vue开发小程序 修改了 Vue.js 的 runtime 和 compiler 实现,使其 ...

  5. Docker Swarm Mode 学习笔记 (基本概念)

    ​ Swarm 是使用 SwarmKit 构建的 Docker 引擎内置(原生)的集群管理和编排工具 节点 ​ 运行 Docker 的主机可以主动初始化一个 Swarm 集群 docker swarm ...

  6. swift 有道 翻译文档(1 定义变量常量,数组字典)

    使用let来创建常量,使用var来创建变量.一个常量的值在编译时不需要知道,但是您必须为它指定一个值一次.这意味着您可以使用常量来命名一个您确定一次的值,但是在许多地方使用它.var myVariab ...

  7. selenium+java二元素定位

    页面元素定位是自动化中最重要的事情, selenium Webdriver 提供了很多种元素定位的方法.  测试人员应该熟练掌握各种定位方法. 使用最简单,最稳定的定位方法. 自动化测试步骤 定位元素 ...

  8. spring xml配置注入改为手动注入过程

    项目中需要使用MQ组件来接受消息,但是有的时候,在使用的时候,并不能满足spring注入的条件,无法注入.例如 在jfinal的config的afterJFinalStart中,由于jfinal集成s ...

  9. opencv的一些功能代码

    opencv调用摄像头 #include<opencv2/opencv.hpp> using namespace cv; void main(){ VideoCapture cap; ca ...

  10. 最新亚马逊 Coupons 功能设置教程完整攻略!

    最新亚马逊 Coupons 功能设置教程完整攻略! http://m.cifnews.com/app/postsinfo/18479 亚马逊总是有新的创意,新的功能.最近讨论很火的,就是这个 Coup ...