Download presentation
Presentation is loading. Please wait.
Published byJaylan Soulsby Modified over 9 years ago
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; }
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.