26
Module 3: Using Value-Type Variables

Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Embed Size (px)

DESCRIPTION

 Common Type System Overview of CTS Comparing Value and Reference Types Comparing Built-in and User-Defined Value Types Simple Types

Citation preview

Page 1: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Module 3: Using Value-Type Variables

Page 2: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Overview

Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting Data Types

Page 3: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Common Type System

Overview of CTS Comparing Value and Reference Types Comparing Built-in and User-Defined Value Types Simple Types

Page 4: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Overview of CTS

CTS supports both value and reference types

 

Reference Type

Type

Value Type

Page 5: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Comparing Value and Reference Types

Value types: Directly contain their

data

Each has its own copy of data

Operations on one cannot affect another

Reference types: Store references to their

data (known as objects)

Two reference variables can reference same object

Operations on one can affect another

Page 6: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Comparing Built-in and User-Defined Value Types

Examples of built-in value types: int

float

Examples of user-defined value types: enum

struct

User-Defined

Value Types

Built-in Type

Page 7: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Simple Types

Identified through reserved keywords int // Reserved keyword

- or -

System.Int32

Page 8: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Naming Variables

Rules and Recommendations for Naming Variables C# Keywords Quiz: Can You Spot Disallowed Variable Names?

Page 9: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Rules and Recommendations for Naming Variables

Rules Use letters, the underscore,

and digits Recommendations

Avoid using all uppercase letters

Avoid starting with an underscore

Avoid using abbreviations Use PascalCasing naming

in multiple-word names

differentDifferent

Answer4242Answer

BADSTYLE_poorstyleBestStyle

MsgMessage

Page 10: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

C# Keywords

Keywords are reserved identifiers

Do not use keywords as variable names Results in a compile-time error

Avoid using keywords by changing their case sensitivity

abstract, base, bool, default, if, finally

int INT; // Poor style

Page 11: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Quiz: Can You Spot the Disallowed Variable Names?

char $diskPrice;

char middleInitial;

int 12count;

float this;

22

33

44

11

int __identifier;55

Page 12: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Using Built-in Data Types

Declaring Local Variables Assigning Values to Variables Compound Assignment Common Operators Increment and Decrement Operator Precedence

Page 13: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Declaring Local Variables

Usually declared by data type and variable name:

Possible to declare multiple variables in one declaration:

--or--

int itemCount;

int itemCount, employeeNumber;

int itemCount, employeeNumber;

Page 14: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Assigning Values to Variables

Assign values to variables that are already declared:

Initialize a variable when you declare it:

You can also initialize character values:

int employeeNumber;

employeeNumber = 23;

int employeeNumber = 23;

char middleInitial = 'J';

Page 15: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Compound Assignment

Adding a value to a variable is very common

There is a convenient shorthand

This shorthand works for all arithmetic operators

itemCount = itemCount + 40;

itemCount += 40;

itemCount -= 24;

Page 16: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Common Operators

Common OperatorsCommon Operators

• Equality operators

• Relational operators

• Conditional operators

• Increment operator

• Decrement operator

• Arithmetic operators

• Assignment operators

ExampleExample

== !=

< > <= >= is

&& || ?:

++

- -

+ - * / %

= *= /= %= += -= <<= >>= &= ^= |=

Page 17: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Increment and Decrement

Changing a value by one is very common

There is a convenient shorthand

This shorthand exists in two forms

itemCount += 1;itemCount -= 1;

itemCount++;itemCount--;

++itemCount;--itemCount;

Page 18: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Operator Precedence

Operator Precedence and Associativity Except for assignment operators, all binary operators

are left-associative

Assignment operators and conditional operators are right-associative

Page 19: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Creating User-Defined Data Types

Enumeration Types Structure Types

Page 20: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Enumeration Types

Defining an Enumeration Type

Using an Enumeration Type

Displaying an Enumeration Variable

enum Color { Red, Green, Blue }

Color colorPalette = Color.Red;

Console.WriteLine(“{0}”, colorPalette); // Displays Red

Page 21: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Structure Types

Defining a Structure Type

Using a Structure Type

Employee companyEmployee; companyEmployee.firstName = "Joe";companyEmployee.age = 23;

public struct Employee{ public string firstName; public int age;}

Page 22: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Converting Data Types

Implicit Data Type Conversion Explicit Data Type Conversion

Page 23: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Implicit Data Type Conversion

To Convert int to long:

Implicit conversions cannot fail May lose precision, but not magnitude

using System;class Test{

static void Main( ) {

int intValue = 123;long longValue = intValue;Console.WriteLine("(long) {0} = {1}", intValue,

longValue);}

}

Page 24: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Explicit Data Type Conversion

To do explicit conversions, use a cast expression:

using System;class Test{

static void Main( ) {

long longValue = Int64.MaxValue;int intValue = (int) longValue;Console.WriteLine("(int) {0} = {1}", longValue,

intValue);}

}

Page 25: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Lab 3.1: Creating and Using Types

Page 26: Module 3: Using Value- Type Variables. Overview Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting

Review

Common Type System Naming Variables Using Built-in Data Types Creating User-Defined Data Types Converting Data Types