Difference between revisions of "OOP Class3"

esse quam videri
Jump to: navigation, search
Line 4: Line 4:
The Assigment operator in c# is the '=' sign. You can assign variables like this...
The Assigment operator in c# is the '=' sign. You can assign variables like this...

Revision as of 19:21, 27 January 2006


ECMA-334 Operators and punctuators


The Assigment operator in c# is the '=' sign. You can assign variables like this...

<csharp>int myVar; //declare varible of type int called myVar myVar = 15; //assign myVar the value of 15 using the '=' sign</csharp>

Comparison Operators

Operator Description
== Equality
< Less Than
<= Less than or equal to
> Greater than
>= Greater than or equal to
!= Ineqaulity

Logical Operators

Operator Description
&& Logical AND
II Logical OR (note the II are really pipes)
! Logical NOT

Logical operator Precedence

  1. !
  2. &&
  3. ||


evil goto - I won't show it figure it out on your own...

   * if
   * switch


   * for
   * while
   * do... while
   * foreach

Branching Statements



<csharp>if (expression)

   // statement

if (expression) {

   // statements
   // statements

} if (expression) {

   // statements
   // statements

} else {

   // statements


About braces and indenting. I usually use BSD/Allman Style. Jargon File indent style n. The One True Brace Style if example /infod/jeff/classSource/class3/IfSelection.cs - source

The following code uses a bunch of operator and if staments to do some basic sanity checks. Analye it and try to predict the output sanityCheck.cs - source

switch syntax

switch (expression)

   case constant-expression:
   [default: statement]

example 1

<csharp>// switch with integer type switch (myInt) {

   case 1:
           Console.WriteLine("Your number is {0}.", myInt);
   case 2:
           Console.WriteLine("Your number is {0}.", myInt);
   case 3:
           Console.WriteLine("Your number is {0}.", myInt);
           Console.WriteLine("Your number {0} is not between 1 and 3.", myInt);


fall though and goto case

<csharp>// fall though and goto case switch (myChoice) {

   case "NewLeft":
           Console.WriteLine("Newleft is voting Democratic.");
           goto case "Democrat";
   case "Democrat":
           Console.WriteLine("You voted Democratic.");
   case "CompassionateRepublican":
   case "Republican":
           Console.WriteLine("You voted Republican.");
           Console.WriteLine("Please vote....");


Looping Statements for syntax

    for ([initializers]; [expression]; [iterators]) statement

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

   forOneResult += "For Loop " + i + "



For Loop 0
For Loop 1
For Loop 2
For Loop 3
For Loop 4
For Loop 5
For Loop 6
For Loop 7
For Loop 8
For Loop 9

<csharp>for (int i=0; i < 20; i++) {

   if (i == 10)
   if (i % 2 == 0)
   forTwoResult += "For Loop " + i + "



For Loop 1
For Loop 3
For Loop 5
For Loop 7
For Loop 9

For loops can also be good to dynamically add or alter the contents or web controls. For example If I wanted a web control to have 100 items in it like this . I could use a for loop to add them here's an example /infod/jeff/classSource/class3/DynamicAddDropdown.aspx - source


while syntax

  while (expression) statement

<csharp>string whileLoopResult = ""; int myInt = 0;

while (Myint < 10) {

   Whileloopresult +="While Loop " + Myint + "&Lt;Br /&Gt;";



While Loop 0
While Loop 1
While Loop 2
While Loop 3
While Loop 4
While Loop 5
While Loop 6
While Loop 7
While Loop 8
While Loop 9


do... while syntax

   do statement while (boolean-expression);

<csharp>string doLoopResult = ""; int myIntDo = 0;

do {

   doLoopResult +="do Loop " + myIntDo + "
"; myIntDo++;

} while (myIntDo < 10);</csharp>


do Loop 0
do Loop 1
do Loop 2
do Loop 3
do Loop 4
do Loop 5
do Loop 6
do Loop 7
do Loop 8
do Loop 9

<csharp>string doLoopResult2 = ""; int myIntDo2 = 30;

do {

       doLoopResult2 +="do Loop " + myInt + "
"; myIntDo2++;

} while (myIntDo2 < 10);<csharp>

produces do Loop 30

for each

A for ewach loop requires and iterator.. more on this iterator thing later...

<csharp>string[] names = {"Cheryl", "Joe", "Matt", "Robert"}; foreach (string person in names) {

   divForEachLoop.InnerHtml += " " + person;


produces test for each output Cheryl Joe Matt Robert

/infod/jeff/classSource/class3/ForEachLoop.cs - source

The for each loop is a key component in polymorphism Remeber the age selector example what if we want to select more than one age. It would be simple to change the dropdownlist into a listboc and turn SelectionMode ="Multiple" so the user can select multiple items but how do check to see if every Item is selected. Is to have each item check itself and use a for each loop. /infod/jeff/classSource/class3/DynamicAddListBoxPoly.aspx - source

How about making those checkboxes? /infod/jeff/classSource/class3/DynamicAddCheckBoxPoly.aspx - source

Make em horzontal and only 10 long /infod/jeff/classSource/class3/DynamicAddCheckBoxPolyHoriz.aspx - source

Try and Catch

<csharp>try { //some crazy code that may cause errors } catch (Exception e) {

   string FstrError = e.ToString();


Asp.Net Example /infod/jeff/classSource/class3/tryAndCatch.aspx - Console Example

<csharp>using System; namespace HelloClass {

   class HelloWorld
       public static void Main()
           object o2 = null;
               int i2 = (int) o2;   // Error
           catch (Exception e)
               //put excetion into string strError
               string strError = e.ToString();
               //write error to label lblOutput


C:\User\csharp>csc try.cs
Microsoft (R) Visual C# .NET Compiler version 7.10.3052.4
for Microsoft (R) .NET Framework version 1.1.4322
Copyright (C) Microsoft Corporation 2001-2002. All rights reserved.

System.NullReferenceException: Object reference not set to an instance of an obj
   at HelloClass.HelloWorld.Main()


/infod/jeff/classSource/class2/try.cs - source


Function help with code reuse. If your going to use it more than once make it into a funtions. syntax simple

[access-modifier] return type indentifier ( [parateters] ) {

   //some code


protected internal
more on these next week.


<csharp>string Hello () {

   return "Hello ";


string HelloToName (string Name) {

   return "Hello " + Name;


Calling a finction in c#

<csharp>string firstHello, jeffHello; //declare some strings firstHello = Hello(); //call the function Hello jeffHello = HelloToName("Jeff"); //call the function HelloToName </csharp>

Console Example /infod/jeff/classSource/class3/function.cs - source

C:\User\csharp>csc function.cs
Microsoft (R) Visual C# .NET Compiler version 7.10.3052.4
for Microsoft (R) .NET Framework version 1.1.4322
Copyright (C) Microsoft Corporation 2001-2002. All rights reserved.


Hello World!
Hello Jeff
Hello Marge


Asp.Net example /infod/jeff/7345ch01-ch10/Ch06/function.aspx - source

Passing variable into a function/method passes be instance. Variables passed by instance do not actually pass in the original variable rather a copy or new instance of the variable is passed. It you want to pass in the actual variable you need to pass be referance Examples of passesing by instamce and passing by refecnce... /infod/jeff/classSource/class3/instanceReference.aspx - Source

Out Parameters

Functions can only return a single value. Out parametrs allow functions to return more than one value. They don't really retun multiple values it's more like passing varibles thought the function by refernce

<csharp>using System; public class Test { public static void Main() { Test t=new Test(); t.Run(); } public void Run() { Test t=new Test(); int Hour = 0; t.GetTime(out Hour); Console.WriteLine (Hour); } public void GetTime ( out int h ) { h = 10; } }</csharp>





scope defines the life of a variable. Local Variables

Variables declared with functions/methods are only around as long as the function/method is running. These variables are known as local varables Global Variables

Global variables are variables that are around for the entire length of execution. They are declared a public within the programs base class. Block Level Variables

Block level variables exitist with the code block.