Download - COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Transcript
Page 1: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

COMPUTER PROGRAMMING I ISUMMER 2011

Visual Basic to C#

Page 2: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Purpose

This PowerPoint is for students that received instruction in Computer Programming I using the Visual Basic language.

Computer Programming II uses the C# language. This lesson will introduces the differences between VB and C#.

Page 3: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Essential Standard

This PowerPoint reviews variables, decision making statements, arrays, and methods (sub procedures). Major differences between C# and VB are also covered.

C# is very different from VB in one KEY way. All statements MUST end with a semicolon (;). If you forget this, your code will not work. Exceptions: IF statements and loops

The upside to this is two-fold: 1. Multiple coding statements may be on the same line 2. A long code segment can be spilt up without having to use an

underscore like in VB.

Page 4: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Spacing C# Examples

int intAge; string strName; Two different statements- same line

Long line of code: string query = @"SELECT whatever

FROM tableNameWHERE column = 1";

Both are perfectly valid statements in C#.

Page 5: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Semicolon Exceptions

Two exceptions to the semicolon rule:

if(x==b) no semicolon here It is a “clause” - only part of the statement

{ y=7; semicolon as normal}

while(x< i) no semicolon here either – again it is a “clause”{ intGradeTotal=intGrade; semicolon as normal}

Page 6: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Declaring a Variable

In VB we use the Dim keyword to declare a variable: Dim intAge as Integer

C# handles this differently: int intAge;

In C# use the following format: DataType variableName;

All types are spelled out except integer (int) and character (char).

Page 7: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

C# Examples

string strName;

char charGrade;

int intAge;

double dblTaxRate;

Page 8: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Coding Blocks

In VB we use the End keyword to end coding blocks like IF statements or loops.

If a = b Then b=cEnd If

In C#, we use braces so this code block would be written:

if(a==b){ b=c;}

Page 9: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Equality Check (==)

You might of noticed something on the last slide- a == in the if statement.

In VB the assignment operator and equality are the same (=). This is NOT true in C#. The equals sign is solely used for assignment. To check for equality you must use ==.

Using = in an if statement to check for equality is a logic error. The code will run properly, but not produce the intended result. (It will always be false.)

Page 10: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Increment Counters

In VB to add one to a counter we use varName += 1, for two we use +=2 and so on. (i+=1)

This shorthand works in C# as well, but C# provides an additional way to add or subtract one from a counter. i++; i--;

++ adds 1 to the value of i while -- subtracts one. Remember the semicolon is required.

To count by 2, or another number, we use the same shorthand is in VB (i+=2).

Page 11: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

IF Statements

In C# we do not use THEN keyword as in VB. The comparison is enclosed in ( ) after the if keyword.

if (a < b){ Statements}

All statements after the if (to be run if the if is true) that would be executed are enclosed in braces ( { } ).

Page 12: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

IF..Then..Else Example

if(a > b){ b=c; d= 7;}else{ b=5;d=4;}

Page 13: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Else If

C# handles multiple else if statements a little differently as well. There is a space between else and if unlike in VB. As in VB there can be multiple else ifs and a else (default) if all statements are false.

if (a == b) {c = 12;} else if (a>b) {c=14;} else if (a < b) { c = 16; } else { c = 10; }

Page 14: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

If Statements in Assignment Statements

Like VB, C# supports an if statement in an assignment statement. However the format is completely different:

string strName = (a < b) ? "less than 10" : "greater than 10";

? is called the ternary operator.

Page 15: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

And/Or & Short Circuiting

In VB we use the And/Or keywords in compound if statements.

C# And = & Or = |

To short circuit the statement use && (and) or || (or).

Page 16: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Examples

else if (number < 15 & number > 5) Using and

else if(number > 50 | number < 25) Usingor

else if (number < 15 && number > 5) Using short circuit and

else if(number > 50 || number < 25) Using short circuit or

Page 17: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Select Case

The Select Case statement in VB do not exist in C#. Instead C# has the switch keyword. This operates similarly to Select Case, but has some key differences. Let’s refresh our memory with an example:

Select case intGradesCase 90 to 100

strGrade= “A”

Case 80 to 89strGrade=“B”

Case 70 to 79strGrade=“C”

Case 60 to 69strGrade=“D”

Case Is < 60strGrade=“F”

ElseMessagebox.show(“Please input a valid number!”)

End Select

Page 18: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Switch

switch(intGrades) { case 10: case 9: strGrade="A"; break; case 8: strGrade="B"; break; case 7: strGrade = "C"; break; case 6: strGrade="D"; break; case 5: case 4: case 3: case 2: case 1: strGrade = "F"; break; }

• Notice instead of using the To keyword we can just assign multiple cases to a given statement.

• The break; as the end of each case is required or the program will continue to read through the statements.

• There could be multiple true cases in C# unlike VB which stops after finding ONE true case.

• Break prevents this which is almost always the desired outcome.

Page 19: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Switch 2

If all cases are false and we want an action to occur we use the default keyword:

switch (caseSwitch) { case 1: Console.WriteLine("Case 1"); break; case 2: Console.WriteLine("Case 2"); break; default: Console.WriteLine("Default case"); break; }

Page 20: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Select Case vs. Switch

The C# Switch statement does not allow ranges or comparisons like the Select Case statement in Visual Basic. It also does not allow Boolean comparison.

This is one place where the VB implementation is superior to the C# one.

Page 21: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Loops

VB and C# each support the following loops: Do While For For each

In C# loops are written in the same syntax as an if statement:while (i< intNum) remember no semicolon on this line{ Code to run in the loop; semicolon at the end of each code statement unless using a if statement}

Page 22: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Loop Examples

while (i <= 50) //pretest loop{ intResult = intResult + i; i++;}

do { intResult = intResult + i; i ++;} while (i <= 50) //posttest loop

Page 23: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

For Statements

For statements are written completely differently in C#:

for(i=0; i<=50; i++){ intResult = intResult + i;}

VB:For i as Integer = 0 to 50 intResult = intResult + iNext i

Modifier – increment or decrement

ConditionInitializer

Initializer Condition

Modifier – increment or decrement – Uses Step if other than add 1.

Page 24: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Step Keyword

In VB to count by a value other than 1 we use the Step keyword. This is not supported in C#. To count by a value other than 1 we change the end of the statement.

To count by 2’s upward for example: for(i=0; i<=50; i+=2)

To decrease by 2: for(i=100; i>=50; i-=2)

Page 25: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

For each

The for each loop is handled differently in C# as well.

foreach(int j in intArray) //no space { lstGrades.Items.Add(j); }

VB: For Each j In intArray lstGrades.Items.Add(j) Next j

Page 26: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Arrays

In VB we use ( ) in array statements. In C# [ ] are used instead.

Dim intArray = New Integer(4) {1, 2, 3, 4, 5} (VB)

int[] intArray = new int[5] {1,2,3,4,5}; (C#)

In VB we put in 1 less than the number of elements we want in the array. This is NOT the case in C#. If we want five elements we use a 5.

Arrays are still index-based starting at 0.

Page 27: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

COMPUTER PROGRAMMING ISUMMER 2011

Applying Functions/Methodsin C#

Page 28: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Breaking it Up

As programs gets more complex- they become longer and harder to debug or even figure out what exactly is going on.

Functions, also called Methods, provide a way to break up long coding segments and reduce repeated code.

Page 29: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Declare a Method

When you declare a method, you will follow a specific formula for the method header

access_modifier return_type Name ()

Access Modifier We will only use the public in this course. You can use private which would restrict use of the

method.Return Type

The return type will either be void, if there is no value being returned, or it will be the data type of the value being returned.

Page 30: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Declare a Method

Method Header Example:

public void Signature() {

lblResult.Text = “Created by J Smith”; }

To use the method, you will “Call” it when wanted.

Signature();

Page 31: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Methods with Parameters

Parameters provide information to a method that is necessary to do its job.

The method call provides the values – called actual arguments.

You will add the “formal arguments” or “parameters” to the method header.

public void Signature(string Name )

Page 32: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Methods with Parameters

Method:public void Signature(string Name ){

lblResult.Text = “Written by: ” + Name;}

Call:Signature(strName);

The arguments and parameters MUST match in order, data type and number.

Page 33: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Methods that Return a Value

When you specify a return type you will add a return statement.

Method Header Example:

public string Signature(){

return “Created by J Smith”;}

Return data type and what is returned MUST match.

Return Type

Page 34: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Methods that Return a Value

When a method returns a value, the method call must be part of an assignment statement.

Method Call Example:

lblResult.Text = Signature();

Page 35: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Two Ways to Pass Arguments

There are two ways to pass arguments. Pass-by-Value Pass-by-Reference

Pass-by-Value is how we passed the variable strName earlier.

Page 36: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Pass-By-Value

This is the default way to pass arguments in C#.

A copy of the value is made and sent to the method.

Any changes are not passed back to the call.

Think of this as a one way street; the value only moves in one direction.

Page 37: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Pass-By-Reference

The method has the ability to access and modify the original variable from the call.

Reference-type variables store references to objects.

Think of it as sending the actual address of the object for the method to access the value. The method can then manipulate that value and send it back.

Page 38: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Pass-By-Reference

To pass a variable by reference use the keyword ref.

Apply the ref keyword to the parameter declaration allows you to pass that variable by reference.

The ref keyword is used for variables that already have been initialized in the calling method. It must be initialized, otherwise the compiler will generate

an error.

Page 39: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Pass-By-Reference

public void Calculate(int num1, ref int num2){ num2 = num1 + 1;}

private void btnCalc_Click(object sender, EventArgs e){ int n1 = 0; int n2 = 0;

Calculate(n1, ref n2); lblResult.Text = n2.ToString(); //displays 1 in label}

Page 40: COMPUTER PROGRAMMING II SUMMER 2011 Visual Basic to C#

Conclusion

This PowerPoint provided an overview of creating methods in C#.

Next step is to practice with sample programs the skilled students have learned! The Unpacked Content will provide some sample programs.

For more information on this topic http://msdn.microsoft.com/en-us/library/aa645760(v=

VS.71).aspx