Introduction to the C# Programming Language for the VB Programmer

Preview:

Citation preview

Introduction to the C# Programming

Language for the VB Programmer

Slide 2

Lecture Overview Some key terms Introduce the C# programming

language for the VB developer Mention some important features of the

Visual Studio .NET environment Pass along some editing tips and tricks

Slide 3

Key Terms (1) Constructor – A special method that is called

when an object is created from its class Class – A template from which objects are

created Inheritance – The concept that one class can

be created based on another class Method – An action that the object can

perform. Property – The data stored in object. The Text property of a text box, for example

Slide 4

Key Terms (2) Object – A class instance. Once an

object has been created from its class, it’s possible to call methods and read and write properties Objects are created when a class’

constructor is called

Slide 5

Project Structure Everything is the same as VB

Solution file, project file, program files

Modules have a file suffix of .cs instead of .vb

Slide 6

THE BIG DIFFERENCE

C# IS CASE

SENSITIVE

Slide 7

Statements In C#, all statements end with a semicolon ;

Statements can span multiple lines There is no need for a continuation character

as in VB Example C#

System.Console.WriteLine( “This is a line of text”);

Example VBSystem.Console.WriteLine( _ “This is a line of text”);

Slide 8

Comments XMLSummary comments begin with /// Single line comments are marked

with // Multi-line comments start with /* and

end with */

// A comment.

/* This is Also a comment */

Slide 9

Variable Declarations Variable declarations work the same

way in both C# and VB Local variables are declared inside of a

procedure Module-level variables are declared

outside of a procedure In C#, the declaration syntax is

reversed from VB

Slide 10

Data TypesC# VB

int Integer

bool Boolean

string String

double Double

float Single

date DateTime

Slide 11

Variable Declaration (Examples) VB

Dim Count As IntegerDim MyName As String = “Ekedahl”

C#int count;string MyName = “Ekedahl”;

Slide 12

Variable Declarations (Examples) VB syntax to declare a module-level

variable Private Counter As Integer

C# syntax to declare the same variable private int Counter;

Slide 13

Strings Use the System.String data type as in

VB; The C# string type maps to System.String

the string concatenation operator is + instead of &

The members are the same between C# and VB

Slide 14

Type Conversion (Introduction) In IS 350, you used val to convert

strings to numbers In C#, val is used to declare implicitly

typed variables We will use a much different strategy

here Each primary data type supports a

method named TryParse The method accepts 2 arguments

The string to parse The output result

Slide 15

TryParse (Example) Try to parse the string arg and store the

result in outstring arg = "123";double result;if (System.Double.TryParse(arg, out result) == true)

{ return true;}return false;

Slide 16

Using System.Convert Members of System.Convert class also

convert one type to another System.Convert.ToInt32 System.Convert.ToDouble System.Convert.ToDateTime …

Slide 17

Constants Constants are just variables whose

value does not ever change Declare with the const statement Constants can only be initialized when

they are declared

Slide 18

Constants (Example) Declare and initialize constants

const int x = 0;public const double gravitationalConstant = 6.673e-11;

private const string productName = "Visual C#";

Slide 19

Scope Access modifiers control the scope of a

procedure or variable The keywords are the same between VB

and C# private – scope is the class containing

the procedure or variable public – scope is global

Slide 20

C# Blocks In VB, blocks are marked with keywords

Sub – End Sub If – End If Do Loop While End While

In C#, blocks are all marked with {} as in Java or C++

Slide 21

C# Blocks (Example)namespace Validate{ public static class ValidateNumbers { public static bool IsInteger( string arg) { } }}

Slide 22

Procedures Visual Basic has Function and Sub

procedures C# works a bit differently

Procedures that don’t return a value have a data type of void

Procedures that do return a value have an explicitly defined data type

Slide 23

Procedures (Example 1) The following procedure does not return

a value

private void InitializeLocal(){ // Statements}

Slide 24

Procedures (Example 2) The following procedure returns a value

having a data type of bool (Boolean)

public static bool IsInteger(string arg, out int result)

{ if (System.Int32.TryParse(arg, out result) == true) { return true; } return false;}

Slide 25

Calling Procedures To call a procedure, use it’s name If the argument list is empty, the () are

required

Call the procedure foo without arguments

foo();

Slide 26

Operators (Arithmetic) Mathematical operators are the same

for both VB and C# with a few exceptions % is the modulus operator (Mod) ++ and -- are post and pre increment and

decrement operators

Increment Count (Example)Count++;

Slide 27

Operators (Logical) They are pretty much the same from VB

and C# Inequality (<>) in VB is (!=) in C# Equality (=) in VB is (==) in C#

In C#, the single (=) is always used for assignment statements

Slide 28

Relational Operators These are quite different

VB C#

And &

AndAlso &&

Or |

OrElse ||

Xor ^

Not !

Slide 29

Decision-Making Statements (if) if statements take a boolean

expression as an argument Note the parentheses are required

if (i >= 0){ // do something if i is // greater than 0}

Slide 30

Decision-Making Statements ( 2-way if) Use the else keyword to create a 2-way if statement

if ( i >= 0){ // Do something if i is // greater than 0.}else{ // Do something else.}

Slide 31

Decision-Making Statements ( multi-way if) Use else if to create multi-way decisions if (i > 0){ // Do something if i is // greater than 0.}else if (i < 0){ // Do something else.}else{

// i must be equal to 0.}

Slide 32

Decision-Making Statements (switch) C# uses the switch statement instead

of Select Case Both work the same way The break keyword must appear at the

end of each case

Slide 33

switch statement (Example)

switch (day){

case 0:DayOfWeek = “Sunday”;break;

case 1:DayOfWeek = “Monday”;break;

}

Slide 34

Loops (Introduction) while is used to create a pre-test loop

(Do While) do is used to create a post-test loop (Do Until)

for loops are used when the iteration count is known in advance

Slide 35

while Loops While loops take a boolean expression

enclosed in parenthesis The loop executes while the condition is

true {} mark the while block instead of End While

Slide 36

while Loops (Example)int i;while (i < 10){

System.Console.WriteLine(i);i++;

}

Slide 37

do Loops Do loops test the condition after the

loop has executed once Example:do { System.Console.WriteLine(x); x++; // Post increment operator} while (x < 5);

Slide 38

for Loops Like VB, for loops can be used when

the number of loop iterations is known in advance The syntax is quite different though

Slide 39

for Loops (Syntax)for ( init-expr; cond-expr; loop-expr ){ // statement block} int-expr contains the expression’s

initial value cond-expr contains the condition loop-expr updates the expression

Slide 40

for Loops (Example) Print the counting numbers from 1 to 10

for (int i = 0; i < 10; i++){

System.Console.WriteLine(i);}

Slide 41

foreach loops foreach loops are used to enumerate

arrays and collections We will talk about collections more later

When using a foreach loop you need not explicitly increment or decrement the counter

Slide 42

foreach loops (Example) Declare and enumerate a one-

dimensional array named fibarray

int[] fibarray = new int[] { 0, 1, 2, 3, 5, 8, 13 };

foreach (int i in fibarray){ System.Console.WriteLine(i);}

Slide 43

Exiting a Loop Prematurely Use the break statement to exit a loop Use the continue statement to jump to

the loop’s condition The condition is tested immediately

There is a goto statement to jump to a named label but we will NEVER use it

Slide 44

Importing and Using Namespaces By default, you must fully qualify class

and method names System.IO.StreamReader for example

In VB, the Imports statement allows unqualified references Imports System.IO

In C#, it’s the using statement using System.IO;

Recommended