Date post: | 14-Jan-2016 |
Category: |
Documents |
Upload: | scarlett-riley |
View: | 223 times |
Download: | 0 times |
Computing with C#and the .NET Framework
Chapter 2
C# Programming Basics
©2003, 2011 Art Gittleman
Variables
A variable represents a storage location.
Every variable has a name and a type.
int age = 19;
Name is “age” Type is “int”
Value is 19.
age 19
Identifiers
An identifier names program elements.
C# is case sensitive.
Digits may occur, but cannot be the first character.
Identifiers may use the underscore character.
Keywords are identifiers reserved for special uses.
abstract as base bool break byte case catch char checkedclass const continue decimal defaultdelegate do double else enumevent explicit extern false finallyfixed float for foreach gotoif implicit in int interfaceinternal is lock long namespacenew null object operator outoverride params private protected publicreadonly ref return sbyte sealedshort sizeof stackalloc static stringstruct switch this throw truetry typeof uint ulong uncheckedunsafe ushort using virtual voidvolatile while
Some valid C# identifiers are: savings textLabel rest_stop_12 B3 _test My____my
Some invalid identifiers are: 4you // Starts with a number x<y // Includes an illegal character, < top-gun // Includes an illegal character, - int // Reserved keyword
The character set
The ASCII character set contain 128 printing and nonprinting characters including upper and lower case letters, digits, and punctuation.
C# uses Unicode with contains thousands of characters including ASCII.
For English ASCII is sufficient
Type int
A type defines the values a variable can have.
Type int represents a range of integer values from
int.MaxValue -2,147,483,648
to
int.MinValue 2,147,483,647.
Assignment
Initialize a variable once
int age = 19;
Assign values during runtime
The assignment operator is the equals sign, =
age = 10;
The value is stored in the memory location allocated for that variable.
19
10
20
a. int age =19; b. age = 10; c. age = 20;
Constructing a program
Define a class (used later to define object types)
Include a method that contains executable code
The Main method starts execution. It must have the static modifier to be accessible before any objects are created.
public class AssignIt { public static void Main( ) { int number1 = 25; int number2 = 12; number2 = number1 + 15; System.Console.WriteLine ("Number2 is now {0}", number2); }}// Output -- Number2 is now 40
Example 2.3
UML (Unified Modeling Language)
Standard notation for object-oriented design
Class diagram has three parts
Upper section – class name
Middle section – data fields
Lower section – methods
Underline static methods
AssignIt
Main
Constants
const int FIXED = 25;
Cannot assign to a constant. We use upper case names for constants to remind us.
Input from the keyboard
System.Console.Write("Enter your name: "); // displays a prompt to the userString name = System.Console.ReadLine(); // reads the line the user enters // saves it as a string of charactersint number = int.Parse
(System.Console.ReadLine()); // converts input to an integer
Using
The statement
using System;
Allows the code to refer to classes in the System namespace with the explicit prefix. We can replace
System.Console.ReadLine();
with
Console.ReadLine();
Formatting output
{0:C} formats output as currency, dollars and cents in the US.
{0, 10} right-aligns the output in a 10 character field
{0, -10} left-aligns the output in a 10 character field
Arithmetic Operators
Integer data produces integer results.
Binary operators, +, -, *, /, %
two operands
Unary operators +, -
one operand
Operation Math notation C# (constants) C# (variables)
Addition a + b 3 + 4 score1 + score2 Subtraction a - b 3 - 4 bats - gloves Multiplication ab 12 * 17 twelve * dozens Division a/b 7 / 3 total / quantity Remainder r in a=qb+r 43 % 5 cookies % people Negation -a -6 -amount
Figure 2.9 C# arithmetic operations
Operator Precedence
Evaluate 3 + 4 * 5Which operator gets its operands first?
has higher precedence than +so 3 + 4 * 5 = 3 + 20 = 23Avoid parenthesesWith parentheses 3 + (4 * 5) = 23 but (3 + 4) * 5 = 7 * 5 = 35
3 + 4 * 5
Figure 2.10 Multiplication gets its operands first
* 5(3 + 4)
Figure 2.11 Compute within parentheses first
Precedence Table
Higher precedence-, + Unary Negation and Plus*, /, % Multiplication, Division, Remainder+, - Binary Addition and Subtraction= Assignment
Lower precedence
See Appendix for full table
Combining Assign and Increment
Postincrement – evaluate then add 1 x=5 x++ evaluates to 5 and x becomes 6Preincrement – add 1 then evaluate x=5 ++x, x becomes 6 then ++x value is 6 Postdecrement – evaluate then subtract 1 x=5 x-- evaluates to 5 and x becomes 4Predecrement – subtract 1 then evaluate x=5 --x, x becomes 4 and --x value is 4
Figure 2.12 Expression a) and equivalent expression b)
then
3 + x
x++
a. b.
3 + x++
Figure 2.13 Expression a) and equivalent expression b)
then
++x
3 + x
a. b.
3 + ++x
Methods
A method can contain the code for an operation. public static int MultiplyBy4(int aNumber) {
return 4*aNumber;}Parameters pass data to the methodreturn statement specifies the return value, if
any
Argument 5
multiplyBy4
Return value 20
Pass By Value
C#passes arguments by value by default
The called method receives the value of the argument not the location
The value from the caller gets copied to the parameter which is like a local variable of the method
PassByValue.cs illustrates
value of argument x copied to aNumber
Figure 2.17 Memory usage
cube aNumber
12x
value
0
After the call
12
17280
12 then 17
During the call
12
1728
main
result
Before the call to cube(x)