Вы находитесь на странице: 1из 48

.

NET Programming

Lecturer: Dang Thien Binh

Day 2 C# Basics

Objectives
   

   

Explain the need for C# Discuss flow of control of a C# program List the fundamental data types in C# Discuss the concepts of Boxing and UnBoxing Checked and unchecked keywords Ref, out, params keywords Discuss Structures and enumerators Discuss a simple C# program

Introduction to C#


C# compiler is the most efficient compiler in the .NET family Provides native support for COM (Component Object Model) Enhances developer productivity and increases safety, by enforcing strict type checking Allows restricted use of native pointers

C# Program Flow
A simple C# program
/* This is the Hello world Program in C# */ using System; class HelloWorldDemo { public static void Main() { Console.WriteLine (This is the Hello World program); } }

C# Constructs
Variables in C# are declared as follows AccessModifier DataType Variable
Public Private Protected int string float

C# Constructs Contd
To use a keyword as a variable name, prefix the variable name with a @ symbol.
using System; class VariableDemo { public static void Main() { string @string; @string; @string = string is a keyword but used as a variable name in this example; Console.WriteLine (@string); (@string); } }

C# Constructs Contd
using System; class DefaultValDemo { public static void Main() { int[] array1 = new int[5]; Console.WriteLine(10 multiplied by default value of second array element is {0} , 10 * array1[2]); } }

C# Data Types
C# Data type
object string int byte

Description
Base data type for all other types. Declares a variable that can store string values Declares a variable that can store integer values. Declares a variable that can store byte integer values.

Example
object o = null; string s = hello; int val = 12; byte val = 12;

float

Declares a variable, which can store real float val = 1.23F; number values that have integer and decimals parts Declares a variable, which can store logical values: true, false Declares a variable, which can store char values. bool val1 = true; bool val2 = false; char val = 'h';

bool char

Default Values
Default values of the common data types:
Type Numeric (int,float,short) Bool Char Enum 0 False \0 0 Default Value

Input / Output In C#


Uses methods of the Console class in the System namespace The most widely used methods are
Console.ReadLine() Console.WriteLine()

Input / Output In C# Contd


using System; class InputStringDemo { public static void Main() { string input; input = Console.ReadLine(); Console.WriteLine (The input string was :{0}, input); } }

The if construct
 

Used for performing conditional branching Syntax -

if (expression) { //One or more statements to be executed if the expression evaluates to true } [else { //One or more statements to be executed if the expression evaluates to false }]

 The expression should always evaluate to an


expression of Boolean type

Selection Statement
string str = hello; if (str) System.Console.WriteLine (The value is True); if (str == hello) System.Console.WriteLine (The Value isThe above piece of code will display an error message True); Error CS0029 : Cannot implicitly convert type string' to 'bool'

The switch Statement


Syntax
switch(variable) { case value: //Statements break; case value: //Statements break; default: //Statements break; }

The switch Statement Contd


switch(weekday) { case 1: Console.WriteLine (You have selected Monday); break; case 2: Console.WriteLine (You have selected Tuesday); break; default: Console.WriteLine (Sunday is the Default choice!); break; }

Iteration Constructs


Perform a certain set of instructions for a certain number of times or while a specific condition is true Types of iteration constructs
   

The While Loop The Do Loop The For Loop The foreach Loop

The while loop




The while loop iterates through the specified statements till the condition specified is true Syntax

The break statement - to break out of the loop at anytime The continue statement - to skip the current iteration and begin with the next iteration

The do loop
Syntax -

The for loop


Syntax -

The foreach loop (1)




The foreach loop is used to iterate through a collection or an array Syntax -

The foreach loop Contd


using System; public class ForEachDemo { static void Main (String[] args) { int index; String[] array1=new String[3]; for (index=0;index<3;index++) { array1[index]=args [index]; } foreach (String strName in array1) { Console.WriteLine (strName); } } }

Fundamental Types Of C#


C# divides data types into two fundamental categories




Value Types - int, char , and structures int, Reference Types - classes, interfaces, arrays and strings

Fundamental Types Of C# Contd


Value Types

 Just hold a value in memory  Are stored in a stack

 Contains the address of the Reference Types object in the heap  = null means that no object has been referenced

Value Types
using System; class DataTypeTest { public static void Main() { int variableVal = 100; funcTest(variableVal); Console.WriteLine(This value of the variable is {0}",variableVal); } static void funcTest (int variableVal) { int tempVar = 10; variableVal = tempVar*20; } }

Reference Types
using System; class DataTypeTest { public int variableVal; } class DataTypeTestRef { static void Main() { DataTypeTest dataTest = new DataTypeTest(); dataTest.variableVal = 100; funcDataTypeTest(dataTest); Console.WriteLine (dataTest.variableVal); }

Reference Types - Contd


static void funcDataTypeTest(DataTypeTest dataTest) { int tempVar = 10; dataTest.variableVal = tempVar*20; } }

Value types vs. Reference types


Value Variable Holds Allocated Default Value Parameter to functions Actual Value Inline (Stack) Zero Copy Value Reference Reference Heap Null Copy Reference

Boxing & Unboxing




Boxing is conversion of a value type into a reference type Unboxing is the conversion of a reference type into a value type

Boxing & Unboxing Contd


... class BoxEx { int objsTaker(object objectX) { //objsTaker takes an object //and processes it here } object objsConverter() { //objsConverter does the processing //and returns an object } } ... //Implementation of code int variable1; variable1 = 5; BoxEx boxVar = new BoxEx(); boxVar.objsTaker(variable1); //line 1 int convertVar = (int) boxVar.objsConverter(); //line 2 ...

checked & unchecked

throws OverFlowException

ref, ref, out, param


  

ref: similar to passing reference type parameters in C/C++ Keyword ref must be used when calls functions Parameters passed with keyword ref must be initialized values first Using ref when call a function

Declares ref keyword in front of data type

ref, out, ref, out, param


 

out: like ref The difference is: dont need to initialize values before passing

Using out when call a function Declares out keyword in front of data type

ref, out, ref, out, param


Always declared at the end of parameter lists

3 elements

6 elements

Array

Keyword this
public class list { private int size; ... public SetSize (int size) { this.size = size; }

Data Types In C#
 

C# provides us with an Unified Type System All data types in C#, are derived from just one class, the object class

using System; class ObjectProff { public static void Main() { string objectVal; objectVal = 7.ToString(); Console.WriteLine (The value now is +objectVal); } }

Static Members


Members are not associated with any particular object or the class Only one instance of this member is possible
static int staticMem; static int instanceCount() { //instanceCount Implementation }

Arrays
 

A group of values of similar data type Belong to the reference type and hence are stored on the heap The declaration of arrays in C# follow the syntax given below -

DataType[number of elements] ArrayName;

int[6] array1;

Structures
 

Custom data Types Can have methods defined within them Cannot implement inheritance Represent Value types

struct structEx { public int structDataMember; public void structMethod1() { //structMethod1 Implementation } }

Enumerators
public class Holiday { public enum WeekDays { Monday, Tuesday, Wednesday, Thursday, Friday } public void GetWeekDays (String EmpName, WeekDays DayOff) { //Process WeekDays } static void Main() { Holiday myHoliday = new Holiday(); myHoliday.GetWeekDays (Richie, Holiday.WeekDays.Wednesday); } }

Enumerators Contd
 

Enumerators in C# have numbers associated with the values By default, the first element of the enum is assigned a value of 0 and is incremented for each subsequent enum element The default value can be overridden during initialization

public enum WeekDays { Monday=1, Tuesday=2, Wednesday=3, Thursday=4, Friday=5 }

Compiling and Executing C# Program




Click 'Start

Programs Microsoft Visual Studio.Net 2003'

Start Page screen showing recently used projects is displayed on the screen

Compiling and Executing C# Program Contd

Compiling and Executing C# Program Contd


 

Click File New Project to start a new project Select 'Visual C# Projects' from the list on the right hand side and 'Console Application' from the list on the left hand side Type the name of the project in the 'Name' section as Example 1. In the Solution Explorer rename ConsoleApplication1 to Chapter1 Rename the project to Example1 and Class1.cs to HelloWorldDemo.cs

Compiling and Executing C# Program Contd

Compiling and Executing C# Program Contd


 

Save the file and Select Build Build Solution option to build the solution Select Start without Debugging option from the Debug menu to execute the application

Compiling and Executing C# Program Cont




Another method to compile and execute a program is using notepad and DOS prompt  Step 1 Type your code in Notepad  Step 2 Save the file with a .cs extension  Step 3 Switch to DOS prompt and type the following command csc <filename>.cs To run the C# file, type the name of the file without the extension

Thank You

48 48

Вам также может понравиться