Basic Elements of C#
Lecture 6
1
A C# Program
used to organize your code, use classes from the System namespace
and it is a container for classes
and other namespaces
container for data and methods, which brings functionality to your
program. Every line of code that runs in C# must be inside a class.
2
A C# Program
static: It means Main Method can be called without an object.
public: It is access modifiers which means the compiler can execute this
from anywhere.
void: The Main method doesn’t return anything.
Main(): It is the configured name of the Main method.
String []args: For accepting the zero-indexed command line arguments.
args is the user-defined name. So you can change it by a valid identifier.
[] must come before the args otherwise compiler will give errors.
Basic Elements of C#
1. Language Symbols
2. Variables
3. Comments
4. Constants
5. Reserved words
6. Operators and Expressions
7. User Input
4
Basic Elements of C#
Language Symbols
1. Language Symbols
- Letters and Characters (A- Z) or (a-z)
- Numbers(0-9)
- Special symbols
5
Special Symbols
• Token: the smallest individual unit of a
program written in any language excluding
whitespace or a comment
• C# tokens include special symbols, word
symbols, and identifiers
• Special symbols in C# include:
6
Variables
• Area in computer memory where a value of a
particular data type can be stored
– Declare a variable
– Allocate memory
• Syntax
– datatype identifier;
– Compile-time initialization
– Initialize a variable when it is declared
• Syntax
– datatype identifier = expression;
7
Integral Data Types
• Primary difference
– How much storage is needed
– Whether a negative value can be stored
• Includes number of types
– byte & sbyte
– char
– int & uint
– long & ulong
– short & ushort
8
Data Types
Table 1: Values and sizes for integral types 8
Examples of Integral Variable
Declarations
int studentName; // Name of a student
int age = 20; // age - originally initialized to 20
int examNumber; // number of exams
int score; // numbers obtained in a course
General Syntax
type identifier = expression;
10
Floating-Point Types
• Default type is double
Table 2: Values and sizes for floating-point types
11
Examples of Floating-Point
Declarations
double extraPerson = 3.50; // extraPerson originally set
// to 3.50
double averageScore = 70.0; // averageScore originally set
// to 70.0
double priceOfTicket; // cost of a movie ticket
float totalAmount = 23.57f; // note the f must be placed after
// the value for float types
* It is mandantory to suffix number with f or F of float type,
otherwise the number is assumed to be of double.
* Common Error Message: “Literal of type double cannot be
implicitly converted to type `float'”
12
Decimal Types
• Monetary data items
• As with the float, must attach the suffix ‘m’ or ‘M’
onto the end of a number to indicate decimal
– Float attach ‘f’ or ‘F’
Table 3: Value and size for decimal data type
• Examples
decimal endowmentAmount =
33897698.26M; decimal deficit;
13
Boolean Variables
• Based on true/false, on/off logic
• Boolean type in C# → bool
• Does not accept integer values such as 0, 1,
or -1
bool undergraduateStudent;
bool moreData = true;
14
Strings
• Represents a string of Unicode characters
string studentName;
string courseName = "C# Programming";
string twoLines = "Line1\nLine2";
15
Identifiers
• Identifier: the name of something that
appears in a program
– Consists of letters, digits, and the underscore
character (_)
– Must begin with a letter or underscore
• C# is case sensitive
– NUMBER is not the same as number
• Avoid using reserved words as identifiers,
they have special meanings to compiler.
16
Identifiers (cont'd.)
• Legal identifiers in C#:
– first
– conversion
– payRate
Table Invalid identifier
4: 17
Examples of Valid Names (Identifiers)
Table 5: Valid
identifiers 18
Examples of Invalid Identifiers
Table 2- Invalid identifier
6 19
Variables and Data Types
• A variable is nothing but a name given
to a storage area that our programs can
manipulate.
• Each variable in C# has a specific type,
which determines the size and layout
of the variable's memory; the range of
values that can be stored within that
memory; and the set of operations that
can be applied to the variable.
20
Variable Definition in C#
• - Syntax for variable definition in C# is:
<data_type> <variable_list>;
- Examples:
int counter;
double interestRate;
char grade;
21
Allocating Memory with Constants and
Variables (cont’d.)
• Variable: memory location whose content
may change during execution
• Syntax to declare a named constant:
22
Variable Initialization in C#
• Variables are initialized (assigned a value) with an equal
sign followed by a constant expression. The general form
of initialization is:
variable_name = value;
23
Variable Initialization in C#
• Variables can be initialized (assigned an initial value)
in their declaration. The initialize consists of an equal
sign followed by a constant expression as:
24
Example
namespace VariDbleDefinition
class Program
st:at:1c void Ma1n args
)
( st:ring[ shont: aj
1nt b ;
double c;
/” actuaL 1n1t1a11zat::zon */
b = 28 ,
c = a + b;
Console . IJr 1teL1ne ( "a = {8), b = •J}, c = {2}", a, b, c
);
Console.ieadLine();
When the above code is compiled and executed, it produces the following result:
a = lB, b = 20, c = 30
Comments
• Single-line comments start with two forward slashes (//).
• Any text between // and the end of the line is ignored by C# (will not be
executed).
•Multi-line comments start with /* and ends with */.
• Any text between /* and */ will be ignored by C#.
Constants
• Add the keyword const to a declaration of identifier
• Value cannot be altered
• Despite of a variable, it is constant
• Syntax
const datatype identifier = expression;
const double TAX_RATE =
0.0675; const int SPEED = 70;
const char HIGHEST_GRADE =
'A';
27
Constants(con..)
class Oalendar2
CDns I: 1nt: cont: hs = weeks = 52, days = 365 j
12
class Calendar3
const int months =
12; coast int weeks
= 52; coast int
days = 365;
coast double
daysPerMeek =
(double) days /
(double) weeks;
coast double
daysPerMonth =
(double) days /
(double) months;
28
Reserved Words in C#
Table 7:
C# keywords/
reserved words
29
Basic Elements of C# Operators
Operators (Expressions) :
Arithmetic Operators (+, -, *, /, %).
Relational Operators (<, >, <=, >=).
Equality Operators (==, !=).
Logical Operators (!, &&, ||).
Increment and Decrement Operators (++, --).
Assignment Operators (=, +=, -=, *=, /=, %=).
30
Arithmetic Operators, Operator
Precedence, and Expressions
• C# arithmetic operators:
+ addition
- subtraction
* multiplication
/ division
% modulus (or remainder) operator
• +, -, *, and / can be used with integral
and floating-point data types
• Use % only with integral data types
31
Arithmetic Operations
• Simplest form of an assignment statement
resultVariable = operand1 operator operand2;
• Readability
– Space before and after everyoperator
Table 8: Basic arithmetic operators
32
Expressions
• Integral expression: all operands are
integers
– Yields an integral result
– Example: 2 + 3 * 5
• Floating-point expression: all operands are
floating-point
– Yields a floating-point result
– Example: 12.8 * 17.5 - 34.50
33
Mixed Expressions
• Mixed expression:
– Has operands of different data types
– Contains integers and floating-point
• Examples of mixed expressions:
2 + 3.5
6 / 4 + 3.9
5.4 * 2 – 13.6 + 18 / 2
34
Order of Precedence
• Order of operations
– Order in which the calculations are performed
• Example
– answer = 100;
– answer = answer + 50 * 3 / 25 – 2;
50 * 3 = 150
150 / 25 = 6
6– 2= 4
100 + 4 = 104
35
Order of Operations
Table 9:
Operator precedence
• Associatively of operators
– Left
– Right
36
Precedence of arithmetic operators
37
Basic Arithmetic Operations
• Plus (+) with string Identifiers
– Concatenates operand2 onto end of
operand1
string result;
string fullName;
string firstName = "Muhammad";
string lastName = "Ahmad";
fullName = firstName + " "
+ lastName; 38
Concatenation
Figure 10: String concatenation
39
Equality and Relational operators
40
Increment and Decrement Operators
• Increment operator: increase variable by 1
– Pre-increment: ++variable
– Post-increment: variable++
• Decrement operator: decrease variable by 1
– Pre-decrement: --variable
– Post-decrement: variable—
• What is the difference between the following?
x = 5; x = 5;
y = ++x; y = x++;
41
Increment and Decrement Operators
(continued)
• Increment and Decrement Operations
– Unary operator
num++; // num = num + 1;
--value1; // value = value – 1;
– Preincrement/predecrement versus
post
int num = 100;
Console.WriteLine(num++); // Displays
100 Console.WriteLine(num); //
Display 101 Console.WriteLine(++num); //
42
Displays 102
Increment and Decrement operators
43
Basic Arithmetic Operations
(continued)
Fig 11: Change in memory after count++; statement
executed 44
Basic Arithmetic Operations (continued)
Figure 12: Results after statement is executed
45
Increment and Decrement operators
46
Increment and Decrement operators
47
Assignment Operators
• Assignment expression abbreviations
– Addition assignment operator
• Example
c = c + 3; abbreviates to c += 3;
• Statements of the form
variable = variable operator expression;
can be rewritten as
variable operator= expression;
• Other assignment operators
d -= 4 (d = d - 4)
e *= 5 (e = e * 5)
f /= 3 (f = f / 3)
x %= 9 (x = x % 9) 46
Assignment Statement
• The assignment statement takes the
form:
• Expression is evaluated and its value is
assigned to the variable on the left
side
• A variable is said to be initialized
the first time a value is placed into it
• In C#, = is called the assignment
operator 49
Examples of Assignment Statements
int
numberOfMinutes
, count,
minIntValue;
numberOfMinutes = 45;
count = 0;
minIntValue = -214;
50
Examples of Assignment Statements
char firstInitial,
yearInSchool,
punctuation;
enterKey,
lastChar;
firstInitial = 'B';
yearInSchool = '1';
punctuation = '; ';
enterKey = '\n'; // newline escape character
lastChar = '\u005A'; // Unicode character 'Z'
51
Examples of Assignment
Statements (continued)
double accountBalance,
weight;
bool isFinished;
accountBalance = 4783.68;
weight = 1.7E-3; //scientific notation may be used
isFinished = false; //declared previously as a bool
//Notice – no quotes used
52
Examples of Assignment
Statements (continued)
decimal amountOwed,
deficitValue;
amountOwed = 3000.50m; // m or M must be suffixed to
// decimal data types
deficitValue = -328672.50M;
53
Examples of Assignment Statements
(continued)
Figure 2-7 Impact of assignment
statement 54
Arithmetic assignment operators
55
User Input
User Input
• The Console.ReadLine() method returns a string. Therefore, you cannot get
information from another data type, such as int.
• The following program will cause an error:
User Input
Whitespaces
• Every C# program contains whitespaces
– Include blanks, tabs, and newline characters
• Used to separate special symbols, reserved
words, and identifiers
• Proper utilization of whitespaces is
important
– Can be used to make the program more
readable
59
Summary
• C# program: collection of functions, one
of which is always called main
• Identifiers consist of letters, digits, and
underscores, and begins with letter or
underscore
• The arithmetic operators in C# are
addition (+), subtraction (-),
multiplication (*), division (/), and
modulus (%)
• Arithmetic expressions are evaluated
using the precedence associativity rules 60
Summary (cont’d.)
• All operands in an integral expression are
integers
• All operands in a floating-point expression are
decimal numbers
• Mixed expression: contains both integers and
decimal numbers
• Use the cast operator to explicitly convert
values from one data type to another
• A named constant is initialized when
declared
• All variables must be declared before 61