1 / 49

C#: Introduction for Developers

Neal Stublen nstublen@jccc.edu. C#: Introduction for Developers. C# Data Types. 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 )

yon
Télécharger la présentation

C#: Introduction for Developers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Neal Stublen nstublen@jccc.edu C#: Introduction for Developers

  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 <type> <variableName>; int index; float interestRate; <type> <variableName> = <value>; int index = 0; float interestRate = 0.0005;

  5. Constants const <type> <variableName> = <value>; 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 (<type>) <expression> double total = 4.56; intavg = (int)(total / 10); decimal decValue = (decimal)avg;

  11. What Should Happen? inti = 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 • <value>.ToString(); • <type>.Parse(<string>); • Convert.ToBool(<value>); • Convert.ToString(<value>); • Convert.ToInt32(<value>);

  16. Formatted Strings • <value>.ToString(<formatString>); • 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 (inti = 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 Exception Format Exception Arithmetic Exception Arithmetic 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; }

More Related