+ All Categories
Home > Documents > Getting Started with C#. Name: Ahmed Galib Reza Email: [email protected] Lab: Ubiquitous...

Getting Started with C#. Name: Ahmed Galib Reza Email: [email protected] Lab: Ubiquitous...

Date post: 17-Dec-2015
Category:
Upload: james-park
View: 227 times
Download: 1 times
Share this document with a friend
Popular Tags:
36
Socket Programming Laboratory - 1 Getting Started with C#
Transcript
Page 1: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Socket ProgrammingLaboratory - 1

Getting Started with C#

Page 2: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Name: Ahmed Galib Reza Email: [email protected] Lab: Ubiquitous Computing Lab Nationality: Bangladeshi Education:

◦ B. IT (Hons.) Information System Engineering , Multimedia University, Malaysia.

◦ Master of Computer Engineering, Major in Ubiquitous IT, Dongseo University, South Korea.

Self Introduction

Page 3: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Introduction Understand the basic structure of a C# program. Obtain a basic familiarization of what a

"Namespace" is. Obtain a basic understanding of what a Class is. Learn what a Main method does. Learn about console input/output (I/O) Variables and C# Data types C# Operators

Objectives

Page 4: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

C# (C Sharp), a successor to C++, has been released in conjunction with the .NET framework.

C# design goals:◦ Be comfortable for C++ programmer◦ Fit cleanly into the .NET Common Language

Runtime (CLR)◦ Simplify the C++ model◦ Provide the right amount of flexibility◦ Support component-centric development

About C#

Page 5: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Create Project

Page 6: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:
Page 7: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

using System;

namespace ConsoleApplication1{ class Program { static void Main(string[] args) { Console.WriteLine("Hello World!!"); } }}

Hello World in C#•Uses the namespace System•Entry point must be called Main•Output goes to the console•File name and class name need not to be identical•C# is case sensitive, therefore args and Args are different identifiers

Namespace Declaration is Optional

Page 8: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

namespace ConsoleApplication1{ class Program { static void Main(string[] args) { System.Console.WriteLine("Hello World!!");

} }}

Hello World without Namespace

must use qualified name

Page 9: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Replace Console.WriteLine() statement of HelloWorld Program by Console.Write() statement.

What is your output?

Try yourself

Page 10: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Console.Write() ◦ Write the specific string to the standard output

stream. Console.WriteLine()

◦ Write the specific string, follow by current string terminator to the standard output stream.

Write() vs. WriteLine()

Page 11: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Exercise - 01using System;

class Exercise

{

static void Main()

{

Console.WriteLine("One!!!");

Console.WriteLine("Two!!!");

Console.WriteLine("Three!!!");

}

}

Page 12: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Exercise - 02

What is your Output? Any changes?

using System;

class Exercise

{

static void Main()

{

Console.Write ("One!!!");

Console.Write ("Two!!!");

Console.Write ("Three!!!");

}

}

Page 13: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Often we use special identifiers called keywords that already have a predefined meaning in the language◦ Example: class

A keyword cannot be used in any other way

C# Keywords

Page 14: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

C# KeywordsC# Keywords

abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach get goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed set short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using value virtual void volatile while

All C# keywords are Lowercase

Page 15: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Variables A variable is a typed name for a location in memory A variable must be declared, specifying the variable's

name and the type of information that will be held in it

int numberOfStudents;…

int average, max;

data type variable name

int total;…

Which ones are valid variable names?myBigVar VAR1 _test @test99bottles namespace It’s-all-over

920092049208921292169220922492289232

numberOfStudents:

average: max:

total:

Page 16: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Assignment An assignment statement changes the value of a

variable The assignment operator is the = sign

total = 55;

You can only assign a value to a variable that is consistent with the variable's declared type (more later)

You can declare and assign initial value to a variable at the same time, e.g., int total = 55;

The value on the right is stored in the variable on the left The value that was in total is overwritten

int total;…

Page 17: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Example

static void Main(string[] args) { int total;

total = 15; System.Console.Write(“total = “); System.Console.WriteLine(total);

total = 55 + 5; System.Console.Write(“total = “); System.Console.WriteLine(total); }

Page 18: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Constants

A constant is similar to a variable except that it holds one value for its entire existence

The compiler will issue an error if you try to change a constant

In C#, we use the constant modifier to declare a constant

constant int numberOfStudents = 42; Why constants?

◦ give names to otherwise unclear literal values◦ facilitate changes to the code◦ prevent inadvertent errors

Page 19: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

C# Data Types There are 15 data types in C# Eight of them represent integers:

◦ byte, sbyte, short, ushort, int, uint, long,ulong Two of them represent floating point numbers

◦ float, double One of them represents decimals:

◦ decimal One of them represents boolean values:

◦ bool One of them represents characters:

◦ char One of them represents strings:

◦ string One of them represents objects:

◦ object

Page 20: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Numeric Data Types The difference between the various numeric types is

their size, and therefore the values they can store:Range

0 - 255-128 - 127-32,768 - 327670 - 65537-2,147,483,648 – 2,147,483,6470 – 4,294,967,295-91018 to 91018

0 – 1.81019

1.010-28; 7.91028 with 28-29 significant digits

1.510-45; 3.41038 with 7 significant digits5.010-324; 1.710308 with 15-16 significant digits

Type

bytesbyteshortushortintuintlongulong

decimal

floatdouble

Storage

8 bits8 bits16 bits16 bits32 bits32 bits64 bits64 bits

128 bits

32 bits64 bits

Page 21: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Examples of Numeric Variablesint x = 1;short y = 10;float pi = 3.14f; // f denotes floatfloat f3 = 7E-02f; // 0.07double d1 = 7E-100;// use m to denote a decimaldecimal microsoftStockPrice = 28.38m;

Page 22: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Boolean A bool value represents a true or false

condition

A boolean can also be used to represent any two states, such as a light bulb being on or off

The reserved words true and false are the only valid values for a boolean type

bool doAgain = true;

Page 23: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Characters

A char is a single character from the a character set

Character literals are represented in a program by delimiting with single quotes, e.g.,

'a‘ 'X‘ '7' '$‘ ',‘

char response = ‘Y’;

Page 24: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Common Escape SequencesEscape sequence Description \n Newline. Position the screen cursor to the beginning of the

next line. \t Horizontal tab. Move the screen cursor to the next tab stop. \r Carriage return. Position the screen cursor to the beginning

of the current line; do not advance to the next line. Any characters output after the carriage return overwrite the previous characters output on that line.

\’ Used to print a single quote \\ Backslash. Used to print a backslash character. \" Double quote. Used to print a double quote (") character.

Page 25: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

String

A string represents a sequence of characters, e.g.,string message = “Hello World”;

Page 26: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

using System;

class Exercise

{

static void Main()

{

int CoordX;

int CoordY;

CoordX = 12;

CoordY = -8;

Console.Write("Cartesian Coordinate System: ");

Console.Write("P(");

Console.Write(CoordX);

Console.Write(", ");

Console.Write(CoordY);

Console.WriteLine(")\n");

}

}

Example (Signed Integers)

Page 27: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

using System;

class Exercise

{

static void Main()

{

uint DayOfBirth;

uint MonthOfBirth;

uint YearOfBirth;

DayOfBirth = 8;

MonthOfBirth = 11;

YearOfBirth = 1996;

Console.WriteLine("Red Oak High School");

Console.Write("Student Date of Birth: ");

Console.Write(MonthOfBirth);

Console.Write("/");

Console.Write(DayOfBirth);

Console.Write("/");

Console.Write(YearOfBirth);

Console.WriteLine();

}

}

Example (Unsigned Integers)

Page 28: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

using System;

class NumericRepresentation{ static void Main() { long CountryArea;

CountryArea = 5638648L;

Console.Write("Country Area: "); Console.Write(CountryArea); Console.Write("km2\n"); }}

Example (Long Integers)

Page 29: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

using System;

class NumericRepresentation{ static void Main() { float Distance = 248.38F;

//Distance = 248.38F;

Console.Write("Distance = "); Console.Write(Distance); Console.WriteLine("km\n"); }}

Exercise (Float)

Page 30: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

using System;

class Exercise

{

static void Main()

{

string Team = "Real Madrid";

string Country = "Spain";

Console.WriteLine("Welcome to the World of C# Programming!");

Console.Write("Team: ");

Console.WriteLine(Team);

Console.Write("Country: ");

Console.WriteLine(Country);

Console.WriteLine();

}

}

Exercise (String)

Page 31: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Type conversion  Number Number

◦ Example : double int int float short int

String/Number Number◦ Example :

string int double string

Page 32: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

using System;

class Exercise

{

static void Main()

{

const double PI = 3.14;

int integer = (int)PI;

string str = Convert.ToString(PI);

double doubleValue = Convert.ToDouble(str);

Console.WriteLine("const PI is {0}", PI);

Console.WriteLine("integer is {0}", integer);

Console.WriteLine("str is {0}", str);

Console.WriteLine("doubleValue is {0}", doubleValue);

}

}

Example

Page 33: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

C# OperatorsCategory (by precedence)

Operator(s)Associativity

Primaryx.y  f(x)  a[x]  x++  x-- new  typeof  default  checked  unchecked delegate

left

Unary +  -  !  ~  ++x  --x  (T)x left

Multiplicative *  /  % left

Additive +  - left

Shift <<  >> left

Relational <  >  <=  >=  is as left

Equality ==  != right

Logical AND & left

Logical XOR ^ left

Logical OR | left

Conditional AND && left

Conditional OR || left

Null Coalescing ?? left

Ternary ?: right

Assignment =  *=  /=  %=  +=  -=  <<=  >>=  &=  ^=  |=  => right

Page 34: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Binary Operator

using System;

class Binary{    public static void Main()    {        int x, y, result;        float floatresult;

        x = 7;        y = 5;

        result = x+y;        Console.WriteLine("x+y: {0}", result);

        result = x-y;        Console.WriteLine("x-y: {0}", result);

        result = x*y;        Console.WriteLine("x*y: {0}", result);

        result = x/y;        Console.WriteLine("x/y: {0}", result);

        floatresult = (float)x/(float)y;        Console.WriteLine("x/y: {0}", floatresult);

        result = x%y;        Console.WriteLine("x%y: {0}", result);

        result += x;        Console.WriteLine("result+=x: {0}", result);    }}

Page 35: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Unary Operators

using System;

class Unary{    public static void Main()    {        int unary = 0;        int preIncrement;        int preDecrement;        int postIncrement;        int postDecrement;        int positive;        int negative;        bool logNot;

        preIncrement = ++unary;        Console.WriteLine("pre-Increment: {0}", preIncrement);

        preDecrement = --unary;        Console.WriteLine("pre-Decrement: {0}", preDecrement);

        postDecrement = unary--;        Console.WriteLine("Post-Decrement: {0}", postDecrement);

        postIncrement = unary++;        Console.WriteLine("Post-Increment: {0}", postIncrement);

        Console.WriteLine("Final Value of Unary: {0}", unary);

        positive = -postIncrement;        Console.WriteLine("Positive: {0}", positive);

        negative = +postIncrement;        Console.WriteLine("Negative: {0}", negative);                logNot = false;        logNot = !logNot;        Console.WriteLine("Logical Not: {0}", logNot);    }}

Page 36: Getting Started with C#.  Name: Ahmed Galib Reza  Email: galibmmu@gmail.com  Lab: Ubiquitous Computing Lab  Nationality: Bangladeshi  Education:

Option DescriptionStep Into If the current line contains a method, the

execution point will traverse deeper into the method definition.

Step Over If the current line contains a method, the execution point will not move further into the method definition

Step Out If the current line is within a method definition, the execution point will move out of the current method and back to the point before calling the method

Tracing and Debugging

We will discuss in more detail in next class.


Recommended