Presentation is loading. Please wait.

Presentation is loading. Please wait.

Neal Stublen C# Data Types Built-in Types  Integer Types byte, sbyte, short, ushort, int, uint, long, ulong  Floating Point Types.

Similar presentations


Presentation on theme: "Neal Stublen C# Data Types Built-in Types  Integer Types byte, sbyte, short, ushort, int, uint, long, ulong  Floating Point Types."— Presentation transcript:

1 Neal Stublen nstublen@jccc.edu

2 C# Data Types

3 Built-in Types  Integer Types byte, sbyte, short, ushort, int, uint, long, ulong  Floating Point Types float, double, decimal  Character Type char (2 bytes!)  Boolean Type bool ( true or false )  Aliases for.NET data types (Byte, Integer, Decimal, etc.)

4 Declare and Initialize ; int index; float interestRate; = ; int index = 0; float interestRate = 0.0005;

5 Constants const = ; const decimal PI = 3.1415926535897932384626;

6 Naming Conventions  Camel Notation (camel-case) salesTax Common for variables  Pascal Notation (title-case) SalesTax Common for type names and constants  C or Python style sales_tax (variable) SALES_TAX (constant) Not common

7 Arithmetic Operators  Addition (+)  Subtraction (-)  Multiplication (*)  Division (/)  Modulus (%)  Increment (++)  Decrement (--)

8 Assignment Operators  Assignment (=)  Addition (+=)  Subtraction (-=)  Multiplication (*=)  Division (/=)  Modulus (%=)

9 Type Casting  Implicit  Less precise to more precise  byte->short->int->long->double int letter = 'A'; int test = 96, hwrk = 84; double avg = test * 0.8 + hwrk * 0.2;

10 Type Casting  Explicit  More precise to less precise  int->char, double->float ( ) double total = 4.56; int avg = (int)(total / 10); decimal decValue = (decimal)avg;

11 What Should Happen? int i = 379; double d = 4.3; byte b = 2; double d2 = i * d / b; int i2 = i * d / b;

12 "Advanced" Math Operations  totalDollars = Math.Round(totalDollars, 2);  hundred = Math.Pow(10, 2);  ten = Math.Sqrt(100);  one = Math.Min(1, 2);  two = Math.Max(1, 2);

13 Strings  string text = "My name is ";  text = text + "Neal"  text += " Stublen."  double grade = 94;  string text = "My grade is " + grade + “.”;

14 Special String Characters  Escape sequence  New line ("\n")  Tab ("\t")  Return ("\r")  Quotation ("\"")  Backslash ("\\")  filename = "c:\\dev\\projects";  quote = "He said, \"Yes.\"";  filename = @"c:\dev\projects";  quote = @"He said, ""Yes.""";

15 Converting Types .ToString(); .Parse( );  Convert.ToBool( );  Convert.ToString( );  Convert.ToInt32( );

16 Formatted Strings .ToString( );  amount.ToString("c"); // $43.16  rate.ToString("p1"); // 3.4%  count.ToString("n0"); // 2,345  String.Format("{0:c}", 43.16); // $43.16  String.Format("{0:p1}", 0.034); // 3.4%  See p. 121 for formatting codes

17 Variable Scope  Scope limits access and lifetime  Class scope  Method scope  Block scope  No officially "global" scope

18 Enumeration Type enum StoplightColors { Red, Yellow, Green }

19 Enumeration Type enum StoplightColors { Red = 10, Yellow, Green }

20 Enumeration Type enum StoplightColors { Red = 10, Yellow = 20, Green = 30 }

21 Enumeration Type enum StoplightColors { Red = 10 } string color = StoplightColors.Red.ToString();

22 "null" Values  Identifies an unknown value  string text = null;  int? nonValue = null;  bool defined = nonValue.HasValue;  int value = nonValue.Value;  decimal? price1 = 19.95;  decimal? price2 = null;  decimal? total = price1 + price2;

23 Control Structures  Boolean expressions Evaluate to true or false  Conditional statements Conditional execution  Loops Repeated execution

24 Boolean Expressions  Equality (==) a == b  Inequality (!=) a != b  Greater than (>) a > b  Less than (<) a < b  Greater than or equal (>=) a >= b  Less than (<=) a <= b

25 Logical Operators  Combine logical operations  Conditional-And (&&) (file != null) && file.IsOpen  Conditional-Or (||) (key == 'q') || (key == 'Q')  And (&) file1.Close() & file2.Close()  Or (|) file1.Close() | file2.Close()  Not (!) !file.Open()

26 Logical Equivalence  DeMorgan's Theorem  !(a && b) is the equivalent of (!a || !b)  !(a || b) is the equivalent of (!a && !b)

27 if-else Statements if (color == SignalColors.Red) { Stop(); } else if (color == SignalColors.Yellow) { Evaluate(); } else if (color == SignalColors.Green) { Drive(); }

28 switch Statements switch (color ) { case SignalColors.Red: { Stop(); break; } case SignalColors.Yellow: { Evaluate(); break; } default: { Drive(); break; }

29 while Statements while (!file.Eof) { file.ReadByte(); } char ch; do { ch = file.ReadChar(); } while (ch != 'q');

30 for Statements int factorial = 1; for (int i = 2; i <= value; ++i) { factorial *= i; } string digits = "" for (char ch = '9'; ch <= '0'; ch-=1) { digits += ch; }

31 break and continue Statements string text = ""; for (int i = 0; i < 10; i++) { if (i % 2 == 0) continue; if (i > 8) break; text += i.ToString(); }

32 Caution! int index = 0; while (++index < lastIndex) { TestIndex(index); } int index = 0; while (index++ < lastIndex) { TestIndex(index); }

33 What About This? for (int i = 0; i < 10; i++) { } for (int i = 0; i < 10; ++i) { }

34 Debugging Loops

35 Debugging Summary  Stepping through code (over, into, out)  Setting breakpoints  Conditional breakpoints

36 Class Methods class DiscountCalculator { private decimal CalcDiscPercent(decimal inAmt) { return (inAmt > 250.0m) ? 0.10m: 0.0m; } public decimal CalcDiscAmount(decimal inAmt) { decimal percent = CalcDiscPercent(inAmt); return inAmt * percent; }

37 Passing Parameters

38 Parameters Summary  Pass zero or more parameters  Parameters can be optional  Optional parameters are "pre-defined" using constant values  Optional parameters can be passed by position or name  Recommendation: Use optional parameters cautiously

39 Parameters Summary  Parameters are usually passed by value  Parameters can be passed by reference  Reference parameters can change the value of the variable that was passed into the method

40 Events and Delegates

41 Event and Delegate Summary  A delegate connects an event to an event handler.  The delegate specifies the handler’s return type and parameters.  Event handlers can be shared with multiple controls

42 Exceptions and Validation

43 Exceptions Exception Format ExceptionArithmetic ExceptionFormat ExceptionArithmetic Exception

44 Format Exception string value = “ABCDEF”; int number = Convert.ToInt32(value);

45 Overflow Exception checked { byte value = 200; value += 200; int temp = 5000; byte check = (byte)temp; }

46 “Catching” an Exception try { int dividend = 20; int divisor = 0; int quotient = dividend / divisor; int next = quotient + 1; } catch { }

47 Responding to Exceptions  A simple message box: MessageBox.Show(message, title);  Set control focus: txtNumber.Focus();

48 Catching Multiple Exceptions try {} catch( FormatException e) { } catch(OverflowException e) { } catch(Exception e) { } finally { }

49 Throwing an Exception throw new Exception(“Really bad error!”); try { } catch(FormatException e) { throw e; }


Download ppt "Neal Stublen C# Data Types Built-in Types  Integer Types byte, sbyte, short, ushort, int, uint, long, ulong  Floating Point Types."

Similar presentations


Ads by Google