Top Banner
Lecture Set 4 Data Types and Variables Part B – Variables, Constants, Expressions Conversion Rules Options Strict, Option Explicit Scope of Definition
33

Lecture Set 4

Jan 07, 2016

Download

Documents

dinos

Lecture Set 4. Data Types and Variables Part B – Variables, Constants, Expressions Conversion Rules Options Strict, Option Explicit Scope of Definition. Objectives. Declare and use variables Create user-defined constants and use expressions Understand type conversion in VB - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lecture Set 4

Lecture Set 4

Data Types and Variables Part B – Variables, Constants, Expressions Conversion RulesOptions Strict, Option Explicit

Scope of Definition

Page 2: Lecture Set 4

Slide 2

Objectives

Declare and use variables Create user-defined constants and use

expressions Understand type conversion in VB How to avoid trouble and get maximum

protection (from yourself) Understand Option Explicit and Strict

and rules for implicit conversion

Page 3: Lecture Set 4

Slide 3

Introduction to Variables

A variable stores data while an application runs The process of creating a variable is called

declaring a variable A variable has a name (identifier)

The naming rules for variables and procedures are the same

A variable has a data type

Page 4: Lecture Set 4

Slide 4

Variable Characteristics

All variables have three characteristics A variable has a lifetime A variable has a scope A variable has accessibility

Consider a simple example from a previous Chapter 4 lecture

Page 5: Lecture Set 4

Slide 5

Variable Characteristics - Illustration

Public Class counterType ‘This is a class variable (aka a global variable or class data store ‘ or property) Private value as integer ‘Scope? Lifetime? Accessibility? Public Sub New (ByVal initialValue As integer) ‘*** Constructor – initialize counter (value) to argument value End Sub ‘New

Public Sub Increment () value = value + 1 End Sub ‘IncrementEnd Class ‘counterType…‘Code appearing elsewhere …‘This may be assumed to appear in some function or procedure. ‘It is a local variable. Scope? Lifetime? Accessibility? Dim myCounter As counterType ‘What does this do?…myCounter = New counterType ‘What does this do? Draw picture!

Page 6: Lecture Set 4

Slide 6

Variable Lifetime

Variable lifetime refers to the period of time that a variable exists A variable declared locally within a

procedure exists only while a procedure executes

A variable declared within a class (or module) exists while a class instance exists or a module is loaded

You may remember such variables as class members or class data stores or variables global to a class

Page 7: Lecture Set 4

Slide 7

Variable Scope and Accessibility

Variable scope refers to the statements that can use a variable

Variables declared inside a procedure with the Dim statement have local scope (no relevance or accessibility outside the procedure)

Variables declared outside a procedure with the Private statement have module-level scope

Page 8: Lecture Set 4

Slide 8

Declaring a Local Variable

Local means local to a function or sub

[Dim | Static] varname As type [=initexpr] The Dim keyword declares a local variable

The variable is created when the containing procedure (sub or function) is invoked

The variable and any value it might have is destroyed when execution of the containing procedure ends

The Static keyword declares a local variable The variable and its value persist from one procedure

invocation to the next varname contains the name (identifier) of the variable type defines the variable’s data type initexpr is used to initialize the variable’s value

Page 9: Lecture Set 4

Slide 9

Initializing Variables

Variables can be declared and initialized in the same statement

Example to declare a variable named CurrentYear and initialize its value to 2006:

Dim CurrentYear As Integer = 2006

Page 10: Lecture Set 4

Slide 10

Common Initialization Errors

Numeric initialization values cannot contain formatting characters

The following statements are illegal:Dim Value1 As Double = 100,000.52

Dim Value2 As Double = $100,000.52

Page 11: Lecture Set 4

Slide 11

Declaring Multiple Variables in One Statement

Multiple variables can be declared in the same statement

Separate each declaration with a comma as follows:

Dim IntegerValue As Integer, DoubleValue As Double If variables have the same data type, the

following shorthand notation can be used:Dim IntegerValue1, IntegerValue2 As Integer

General suggestion – Don’t Do This!

Page 12: Lecture Set 4

Slide 12

Variable Naming Conventions

A scheme of naming variables is called a naming convention Naming conventions improve a program’s

readability Common naming conventions

Hungarian notation Pascal case Camel case

Page 13: Lecture Set 4

Slide 13

Naming Conventions (Description)

Hungarian notation Use a prefix to denote the data type followed by a

descriptive name Pascal case

Use whole words Capitalize the first letter of each word

Camel case Use whole words Use lower case for the first letter of the first word Capitalize the first letter of each remaining word Capitalize all words in a Const

I generally use a combination of Hungarian and Camel notations

Page 14: Lecture Set 4

Slide 14

User-defined (named) Constants

Constants are similar to variables The value of a constant does not

change while an application runs Trying to assign a value to a constant will

cause an error Use the Const statement to declare a

constant Constants are typically declared at the

module-level Why bother with this? City Wage Tax?

Y2K?

Page 15: Lecture Set 4

Slide 15

User-defined Constant (Example)

Declare a constant to store value of PIPrivate Const PI_VALUE As Single _ = 3.14159

Declare a constant to store the value of PI multiplied by 2

Private Const PI_VALUE As Single _ = PI_VALUE * 2

Page 16: Lecture Set 4

Slide 16

Introduction to Expressions

Variables can be used in assignment statements along with object properties

Examples:Dim Result As IntegerDim Example As Integer = 4Result = 3Result = txtExample.HeightResult = Example

Page 17: Lecture Set 4

Slide 17

Common Expression Errors

Values on the right and left sides of an assignment statement must have the same data type

The Font and Integer data types are not compatible so the following statements will cause an error:Dim SomeInteger As Integer

SomeInteger = txtExample.Font

Page 18: Lecture Set 4

Slide 18

Parts of an Expression

Operators Arithmetic operators such as (+, -, *, /,

^, \) Comparison and logical operators

Operands Literal values Object properties Constants Variables

Page 19: Lecture Set 4

Slide 19

Operator Precedence

Operators have an evaluation order called precedence The Visual Basic precedence rules are the

same as the algebraic precedence rules Use parentheses to override the default

precedence rules Use parentheses to clarify evaluation

order Extra parentheses do no harm

Page 20: Lecture Set 4

Slide 20

Operators and Precedence

Page 21: Lecture Set 4

Slide 21

Arithmetic Operators (Example)

Divide 10 by 5 and multiply the intermediate result by 100

The value 200 is stored in ResultDim Numerator As Double = 10Dim Denominator As Double = 5Dim Result As DoubleResult = Numerator / Denominator * 100

Page 22: Lecture Set 4

Slide 22

Integer Division

The result of an integer division operation is an integral value

The result is truncated rather than rounded

Examples:Result = 4 \ 3 ' 1Result = 5 \ 2 ' 2Result = 10 \ 6 ' 1

Page 23: Lecture Set 4

Slide 23

The Mod Operator

The Mod operator calculates the Integer remainder of a division operation The operation is the same as the

remainder resulting from a long division operation

Examples:Result = 5 Mod 2 ' 1Result = 4 Mod 2 ' 0

Page 24: Lecture Set 4

Slide 24

Operator Precedence

Arithmetic operators are applied in a default order known as precedence Exponentiation, multiplication and

division, addition and subtraction Use parentheses to change the default

precedence order

Page 25: Lecture Set 4

Slide 25

Evaluation Order with and without Parenthesis

Page 26: Lecture Set 4

Slide 26

Data Types and Type Conversion

Type conversion is used to convert data from one data type to another

There are two types of conversions Narrowing conversions: the receiving

variable is not “wide enough” to receive all the information associated with the course variable

Widening conversions: the receiving variable is wide enough …

Example: Converting type double to an integer is a narrowing conversion. The opposite (integer to double) is a widening conversion

Page 27: Lecture Set 4

Slide 27

Widening and Narrowing Conversions

How type conversion is performed depends on whether strict type checking is enabled

Implicit casting is often done by VB where widening is concerned. It will also do implicit narrowing conversions. Don’t let this happen!

Use strict type checking. Then … A given type will not be implicitly converted

to a more restrictive type (in other words, narrowing will not be allowed unless you do so explicitly)

Strings will not be implicitly converted to numeric data types

Lots of other conversions are prohibited

Page 28: Lecture Set 4

Slide 28

Enabling Strict Type Checking

By default, VB uses permissive type semantics

The Option Strict statement enables or disables strict type checking

The Option Strict statement must appear at the beginning of a module

Enable strict type checking to prevent hard to find type conversion errors

Example:Option Strict OnOption Strict Off

Page 29: Lecture Set 4

Slide 29

Enforcing Explicit Variable Declaration

Explicit variable declaration requires variables to be declared before they are used Explicit variable declaration is enabled, by

default Use the Option Explicit statement to

enforce explicit variable declaration Example:

Option Explicit OnOption Explicit Off

Page 30: Lecture Set 4

Slide 30

Strict Type Checking Rules

Narrowing versus Widening type coercion is the key – widening allows more restrictive types to be implicitly converted to less restrictive types Integral data types will be converted to

floating-point types Integer to Single is legal, for example Single to Double is legal Double to Integer is not legal

Page 31: Lecture Set 4

Slide 31

Conversion – Primitive Types (Pattison)

Page 32: Lecture Set 4

Slide 32

Performing Explicit Type Conversion (brief)

Almost ALWAYS a good idea The members of the System.Convert class

explicitly convert data from one type to another

Methods exist for each primary data type Example:Dim DoubleValue1 As Double = 123.44Dim IntegerResult As IntegerIntegerResult = _ System.Convert.ToInt32(DoubleValue1)

Page 33: Lecture Set 4

Slide 33

Explicit Type Conversion Methods

ToInt16, ToInt32, and ToInt64 convert the argument to an integral value

ToDecimal converts the argument to the Decimal data type

ToDouble and ToSingle convert the argument to floating-point data types

ToString converts the argument to a string

As we will see later in Lecture Set 4 notes, this can be really useful

Note that these methods do no rounding and hence can lead to Format Exceptions (discussed later)