Tải bản đầy đủ (.pdf) (187 trang)

C# Corner: C# and .NET Developer''''s NetworkAll Source Code ADO.NET ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.8 MB, 187 trang )

C# Corner: C# and .NET Developer's Network




All Source Code
ADO.NET
Exception
Handling
General
GDI+
Internet
Mobiling
Multithreading
Networking
Printing
Security
Strings & Arrays
Windows Forms
WebForms
XML.NET
-
Articles
Effective C#
FAQ
How do I
Learn C#
Tutorials
Source Code
Articles
FAQ


Learn VB.NET
Tutorials
Source Code
Articles
FAQ
Learn ASP.NET
Tutorials
COBOL.NET
Eiffel.NET
FoxPro.NET
JScript .NET
Learn XML
Mobile & SOAP
My Services
Open Source
VBScript .NET
VC++.NET
Visual J#
Visual Studio.NET

Introduction to C#
First day with C#. This part of tutorial explains what is C#, how to install it, how to
write your first program, compile and run it.
Working with Data Types
Explains data types in C# and how to work with them.
Control Statements: Part 1 By Amisha Mehta
This lesson shows how to use c# control statements, and the difference between
these controls in c++/ JAVA and c#. Sample includes single selection, if-else, and
multi case
Control Statements: Part 2 By Amisha Mehta

This lesson shows how to use while do, for, for each statements
Language Preprocessor Directives By Vivek Gupta
This lesson contains C# language preprocessor directrives including #if, #else,
#define, #undef, #line etc with sample examples
Properties in C#: New cover on old book by Vivek Gupta
Properties are accessor methods whose job it is to retrieve and set the values of
fields.
Exception Handling By Amisha Mehta
Exceptions in C# provide a structured, and type-safe way of handling both system
level and application level error conditions. The exception mechanism in C# is very
similar to that of C++
What & Why? Properties: Part 1 by Rahul Sharma
If you were programming in C or C++ before coming to C#, you'll be a little bit
confused about properties.

What & Why? Properties: Part 2 by Rahul Sharma
In the part 1 of this series, I discussed about the get method of the properties, with
the help of which you can make your variable so that nobody can modify the value of
the variable

Difference using Directive and Statement by Yoganand Aiyadurai
This article explains difference between using directive and using statement with
sample example.

C# and its Types by G. Gnana Arun Ganesh
A detailed tutorial and C# types such as Value and Reference types with sample
examples.

Events and Delegates By Kunal Cheda
Events in C# are based on delegates, the Originator defining one or more callback

functions
for each: A C# Syntax which Java lacks by Ashish Banerjee
C# has a new iteration syntax called foreach, which I believe has been inherited
from Visual Basic ( correct me if I am wrong).

C# and its features by G. Gnana Arun Ganesh
C# is a modern, type safe programming language, object oriented language that
enables programmers to quickly and easily build solutions for the microsoft .NET
platform

Boxing and Unboxing by G. Gnana Arun Ganesh
Boxing and unboxing is a essential concept in C#’s type system. With Boxing and
unboxing one can link between value-types and reference-types

C# Beginners
Introduction to C#
Working with Data Types
C# and its Types
Control Statements: Part 1
Control Statements: Part 2
Constructors and Destructors
Properties in C#
Exception Handling
Using Attributes in C#
Encapsulation in C#
Exploring Delegates
Namespaces

(1 of 4) [11/27/2001 7:17:40 PM]
C# Corner: C# and .NET Developer's Network

About Us
Books
Book Chapters
Career Center
Discussion
Downloads
Events
Hosting
Links
Magazines
Members
News Letter
Sponsors
Training
Tools
Jobs
Join C# Corner
Our Partners
Submit Code
Win Prizes
Mindcracker
Understanding and Implementing Namepsaces in C# by G. Gnana
Arun Ganesh
Namespaces allow you to create a system to organize your code. A good way to
organize your namespaces is via a hierarchical system.

Operator Overloading in C# by Prasad H.
The Source code below shows how to use OperatorOverloading in C#. Operator
Overloading is pretty useful concept derived from C++ by C#.


Using Attributes in C# by Rajadurai P.
This article shows how to create custom attribute classes, use them in code, and
query them.

Using Array class and IEnumeration by Rajadurai P.
This article illustrates the usage of Array class and IEnumerator. Array class Provides
methods for creating, manipulating, searching and sorting arrays, thereby serving as
the base class for all arrays in the common language runtime.

Enumerators in C# by Prasad H.
Sample example shows you how to use enumerators in C#.
Visual Inheritance in C# by Prasad H.
We all know that Inheritance means a extending a class with more Features without
worrying about the implementation of features of hidden inside the class to be
inherited.

Visual Inheritance Part 2 by Prasad H.
We all know that Inheritance means a extending a class with more Features without
worrying about the implementation of features of hidden inside the class to be
inherited.

Abstract Classes and Methods by Rajesh V.S.
This is a detailed analysis of Abstract classes and methods in C# with some concrete
examples.
Constructors and Destructors by Rajesh V.S.
This detailed article talks about how constructors and destructors work in C# and
how to use them in your applications.
Encapsulation in C# G. G. Arun Ganesh
In Object Oriented programming Encapsulation is the first pace. Encapsulation is the
procedure of covering up of data and functions into a single unit (called class).


Method Parameters in C# G. G. Arun Ganesh
This article describes different method parameters such as value parameters,
reference parameters, output parameters, and parameter arrays.

Understanding Properties in C# Rajesh V.S.
In C#, properties are nothing but natural extension of data fields. They are usually
known as ‘smart fields’ in C# community.

Understanding Structures in C# Rajesh V.S.
A structure in C# is simply a composite data type consisting of a number elements of
other types.

Understanding Enumerators in C# Rajesh V.S.
An enumeration (enum) is a special form of value type, which inherits from
System.Enum and supplies alternate names for the values of an underlying primitive
type.

Inheritance and Polymorphism Rajesh V. S.
By using the concept of inheritance, it is possible to create a new class from an
existing one and add new features to it.

Exploring Delegates By Filip Bulovic
Delegates are a kind of type safe function pointers which are actually declared as
class derived from System.MulticastDelegate.

BitWise Operations in C# By Chandra Hundigam
C# has lots of flexibility over manipulating with bits. Before I start explaining about
bit wise manipulation I would like to give some inputs on binary operations.


(2 of 4) [11/27/2001 7:17:40 PM]
C# Corner: C# and .NET Developer's Network
Pointers in C# Rajesh V. S.
C# also supports pointers in a limited extent. A pointer is nothing but a variable that
holds the memory address of another type. But in C# pointer can only be declared to
hold the memory address of value types and arrays.

Implementing Stacks in C# Danish Sami
With the help of C# we can also implement ADT (Abstract Data Types) with little
effort. An example of ADT is a simple stack of integers.

Working with Namespaces in C# Rajesh V. S.
In C#, namespaces are used to logically arrange classes, structs, interfaces, enums
and delegates. The namespaces in C# can be nested. That means one namespace
can contain other namespaces also.



Passing const parameters in C#, C++, and VB.NET by Bulent Ozkir
Parameter passing to a function is extremely important in all programming languages.
The desire to keep the passed parameter intact forced the compiler designers to add
various keywords to

Multiple inheritance in C# by Craig Breakspear
Can you inherit from multiple classes in C#? Simply put, this cannot be done. However
there are ways around it. From a design perspective you must ask yourself, Will a
Class fully represent an object?
Interface Component Interoperability by G. Gnana Arun Ganesh
The fundamental concept behind both COM and DCOM is the interface. An interface is
an agreement between a client and an object about how they will communicate with

each other.

Difference between const and readonly
The sample example shows the difference between const and readonly Submitted by
Say Gin
C# Language changes from .NET Beta 1 to .NET Beta 2
This article contains C# language changes from Beta 1 to Beta 2. Submitted by Vivek
Gupta. Source MSDN documentation.
Using out and ref parameters By Kunal Cheda
When we pass a parameter as ref to a method, the method refers to the same variable
and changes made will affect the actual variable.
The out and ref parameters
The out and the ref parameters are used to return values in the same variables, that
you pass an an argument of a method. These both parameters are very useful when
your method needs to return more than one values.
Serializing Objects in C#
In simple words serialization is a process of storing the object instance to a disk file.
Serialization stores state of the objecti.e. member variable values to disk.
Deserialization is reverse of serialization i.e.
Operator Overloading Example by Prasad
The code uses the feature of Operator Overloading in C#. It shows how different
operators are overloaded and can be used in a easy manner.
Regular Expressions Example by Prasad
The following example shows the use of Regular Expresssions in C#.This program has
basic validation scripts for validation easily useable in all programs.
.


contact:
copyright © 2000 c-sharpcorner.com. All rights are reserved. See

terms and condition to use this site and its contents.
(3 of 4) [11/27/2001 7:17:40 PM]
C# Corner: C# and .NET Developer's Network
Sponsors: devexpress microgold apress

(4 of 4) [11/27/2001 7:17:40 PM]
C# Corner: C# and .NET Developer's Network




All Source Code
ADO.NET
Exception
Handling
General
GDI+
Internet
Mobiling
Multithreading
Networking
Printing
Security
Strings & Arrays
Windows Forms
WebForms
XML.NET
-
Articles
Effective C#

FAQ
How do I
Learn C#
Tutorials
Source Code
Articles
FAQ
Learn VB.NET
Tutorials
Source Code
Articles
FAQ
Learn ASP.NET
Tutorials
COBOL.NET
Eiffel.NET
FoxPro.NET
JScript .NET
Learn XML
Mobile & SOAP
My Services
Open Source
VBScript .NET
VC++.NET
Visual J#
Visual Studio.NET
Introduction to C#
This part of tutorial explains about C# and how to write and compile your first C# program from
command line.


What is C#?
C# is a new programming language developed by Microsoft. C# has power of C++ since it's
derived from C and C++. It is simpler as VB. Besides that, C# is a Java like language for web
programming and it has some good features of Delphi too. Microsoft says, that C# is the best
language to develop its .NET Framework applications.
Installing .NET SDK
Installing .NET SDK is first step to run C# on your machine. You can install .NET SDK on Windows
ME, Windows NT, or Windows 2000. But Windows 2000 is recommended. After selecting your OS,
you need to follow these steps:
● Install IE 5.5
● Install Microsoft .NET Framework SDK. It's free and you can download it here. NET
Framework SDK.
● After installing these you can write your code in any text editor and save it as .cs
extension. Type this in an notepad and save as my.cs.
C# Compiler and Editors
.NET SDK Beta 1 release of Microsoft's new platform, .NET, incorporated with C# command line
compiler. You must have to install .NET SDK to run a C# program. Once you install .NET SDK,
you can write your C# program in any text editor including notepad, wordpad or Visual Studio.
There are some third party editors are available in the market too. Some of them are free. Check
out
tools section of C# Corner.
Write your first C# program
Writing your first C# program is similar to writing C++ applications. You open any text editor, I
described in the above paragraph and type this code.
using System;
class MyClass
{
static void Main() {
Console.WriteLine("Hello World!");
}

}

Compile your first C# program
Now use command line to compile your cs file. C# compiler takes at least one argument i.e., file
name. Say your C# file name is myclass.cs then here is command line syntax.
csc myclass.cs

C# compiler creates an exe file in the bin dir of your project. Just run this exe
and see the output.

(1 of 2) [11/27/2001 7:19:46 PM]
C# Corner: C# and .NET Developer's Network
About Us
Books
Book Chapters
Career Center
Discussion
Downloads
Events
Hosting
Links
Magazines
Members
News Letter
Sponsors
Training
Tools
Jobs
Join C# Corner
Our Partners

Submit Code
Win Prizes
Mindcracker
Now, lets take a look of your code line by line.
The first line of your program is using System.
using System.

Why using System? System is a namespace which stores system classes. The
Console class, I used in the program to display the output on the console is
defined in the System namespace. That's why this like is there.
Next line is class MyClass. The class keyword in C# is used to create a new
class.
class MyClass
{


}
Each class has one static void Main() function. This function is the entry point of a C# program.
static void Main() {
Console.WriteLine("Hello, C# World!");
}
The WriteLine method of the Console class writes text to the console.



Mahesh is Admin and the founder of C# Corner. He has been programming in C++, MFC, Visual Basic, COM, ATL,
Database Programming over 5 years.
More articles by Mahesh

contact:

copyright © 2000 c-sharpcorner.com. All rights are reserved. See
terms and condition to use this site and its contents.
Sponsors:
devexpress microgold apress

(2 of 2) [11/27/2001 7:19:47 PM]
C# Corner: C# and .NET Developer's Network




All Source Code
ADO.NET
Exception
Handling
General
GDI+
Internet
Mobiling
Multithreading
Networking
Printing
Security
Strings & Arrays
Windows Forms
WebForms
XML.NET
-
Articles
Effective C#

FAQ
How do I
Learn C#
Tutorials
Source Code
Articles
FAQ
Learn VB.NET
Tutorials
Source Code
Articles
FAQ
Learn ASP.NET
Tutorials
COBOL.NET
Eiffel.NET
FoxPro.NET
JScript .NET
Learn XML
Mobile & SOAP
My Services
Open Source
VBScript .NET
VC++.NET
Visual J#
Visual Studio.NET
Working with Data Types
First thing a programmer looks for is what kind of data types a programming languages has and how to use
them. In this part, I will cover C# data types and how to use them in a program.


Basic Data Types
Most of the data type in c# are taken from C and C++. This tables lists data types, their description, and a
sample example.
Data Type Description Example
object The base type of all types object obj = null;
string String type - sequence of Unicode characters string str = "Mahesh";
sbyte 8-bit signed integral type sbyte val = 12;
short 16-bit signed integral type short val = 12;
int 32-bit signed integral type int val = 12;
long 64-bit signed integral type long val1 = 12;
long val2 = 34L;
bool
Boolean type; a bool value is either true or false
bool val1 = true;
bool val2 = false;
char
Character type; a char value is a Unicode character
char val = 'h';
byte 8-bit unsigned integral type byte val1 = 12;
byte val2 = 34U;
ushort 16-bit unsigned integral type ushort val1 = 12;
ushort val2 = 34U;
uint 32-bit unsigned integral type uint val1 = 12;
uint val2 = 34U;
ulong 64-bit unsigned integral type ulong val1 = 12;
ulong val2 = 34U;
ulong val3 = 56L;
ulong val4 = 78UL;
float Single-precision floating point type float val = 1.23F;
double Double-precision floating point type double val1 = 1.23;

double val2 = 4.56D;
decimal Precise decimal type with 28 significant digits decimal val = 1.23M;
Types in C#
C# supports two kinds of types: value types and reference types.
Types Description
Value Types Includes simple data types such as int, char, bool, enums
Reference Types Includes object, class, interface, delegate, and array types
Value Types- Value type objects direct contain the actual data in a variables. With value types, the
variables each have their own copy of the data, and it is not possible for operations on one to affect the
other.
int i = 10;
Reference Types- Reference type variables stores the reference of the actual data. With reference types,
it is possible for two variables to reference the same object, and thus possible for operations on one
variable to affect the object referenced by the other variable.

(1 of 2) [11/27/2001 7:20:02 PM]
C# Corner: C# and .NET Developer's Network
About Us
Books
Book Chapters
Career Center
Discussion
Downloads
Events
Hosting
Links
Magazines
Members
News Letter
Sponsors

Training
Tools
Jobs
Join C# Corner
Our Partners
Submit Code
Win Prizes
Mindcracker
MyClass cls1 = new MyClass();
Data Type Conversions
C# supports two types of conversions. Implicit conversions and explicit conversions.
Implicit conversions are direct conversion. For example:
int iVal = 34;
long lVal = intValue;

Explicit conversions includes type casting. conversion. For example:
long lVal = 123456;
int iVal = (int) lVal;




Mahesh is Admin and the founder of C# Corner. He has been programming in C++, MFC, Visual Basic, COM, ATL, Database
Programming over 5 years.
More articles by Mahesh

contact:
copyright © 2000 c-sharpcorner.com. All rights are reserved. See
terms and condition to use this site and its contents.
Sponsors:

devexpress microgold apress

(2 of 2) [11/27/2001 7:20:02 PM]
C# Corner: C# and .NET Developer's Network




All Source Code
ADO.NET
Exception
Handling
General
GDI+
Internet
Mobiling
Multithreading
Networking
Printing
Security
Strings & Arrays
Windows Forms
WebForms
XML.NET
-
Articles
Effective C#
FAQ
How do I
Learn C#

Tutorials
Source Code
Articles
FAQ
Learn VB.NET
Tutorials
Source Code
Articles
FAQ
Learn ASP.NET
Tutorials
COBOL.NET
Eiffel.NET
FoxPro.NET
JScript .NET
Learn XML
Mobile & SOAP
My Services
Open Source
VBScript .NET
VC++.NET
Visual J#
Visual Studio.NET
Control Statements
Author: Amisha Mehta
Control Statements:
This lesson shows how to use c# control statements, and the difference between these controls in c++/ JAVA and c#.
The first selection statement is programmer’s favorite “if” statement. It has three forms:
1. Single selection
2. if-then-else selection

3.
multi-case selection
List: 1 IfTest.cs
//understanding if statement

using System;

class IfTest {

public static void Main(){

string s;
int i;

Console.WriteLine("Enter a Number: ");
s = Console.ReadLine();
i = Int32.Parse(s);

//single selection

if(i > 0)
Console.WriteLine("The number {0} is positive",i);

//if-then-else selection


if(i > 0)
Console.WriteLine("The number {0} is positive",i);
else
Console.WriteLine("The number {0} is not positive",i);


//multi-case selection

if(i == 0)
Console.WriteLine("The number is zero");
else if(i > 0)
Console.WriteLine("The number {0} is positive",i);
else
Console.WriteLine("The number {0} is negative",i);

}
}
This program reads a number from console. Input coming from console is in string format. Int32.parse(string) is used to
convert string literal to integer.

(1 of 6) [11/27/2001 7:20:30 PM]
C# Corner: C# and .NET Developer's Network
About Us
Books
Book Chapters
Career Center
Discussion
Downloads
Events
Hosting
Links
Magazines
Members
News Letter
Sponsors

Training
Tools
Jobs
Join C# Corner
Our Partners
Submit Code
Win Prizes
Mindcracker
The variable i is the object of evaluation here. c++ programmers can see that the use of if statement is same in c#. Halt it.
There is one difference. The expression in an if statement must resolve to bool value. Take a look at following code.
list: 2
using System;

class IfTest2 {

public static void Main(){

if(1)
Console.WriteLine("The if statement executed");
}
}

when this code is complied by c# compiler, it will give the error “constant value 1 can not be converted to bool”.
conditional or ( || ) and conditional and ( && ) operators are used in the same manner. Consider the following code.
List: 3 LeapTest.cs
//Leap year
using System;

class LeapTest {


public static void Main(){

int year;

Console.WriteLine("enter the year value (yyyy) :");
year = Int32.Parse(Console.ReadLine());

if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0 )
Console.WriteLine("The year {0} is leap year ",year);
else
Console.WriteLine("The year {0} is not leap year ",year);


}
}

Similar to if-else if-else if-else form of the if statement is the “switch” statement.
List: 4 SwitchTest1.cs
using System;

class SwitchTest1 {

public static void Main(){

int i = 1;

switch(i){
case 1 :
Console.WriteLine("one");
break;

default :
Console.WriteLine("default");
}
(2 of 6) [11/27/2001 7:20:30 PM]
C# Corner: C# and .NET Developer's Network

}
}

the difference here is if you try to compile above code without putting break statement in case 1, compiler will raise an
error “control can not fall through from one case label”. I’m sure c++/Java programmers are going to love this. Here is
another good news.
The switch expression can evaluate to following types: sbyte, byte,short, ushort, int, uint, long, ulong, char, string or
enum. So the following code is perfectly OK with c# compiler.
List: 5 SwitchTest2.cs
using System;

class SwitchTest2 {
public static void Main(){

string day;

Console.WriteLine("enter the day :");
day = Console.ReadLine();

switch(day){
case "Mon" :
case "Monday" :
Console.WriteLine("day is Monday: go to work");
break;


default :
Console.WriteLine("default");
}

}
}

Control Statements – Loops
This lesson shows you how to use c# looping statements. In c#, there are four iteration constructs rather than three. There
are familiar for, do, while loops and a new one from Visual basic, foreach.
Let us start with while loop.
The Do and While Statements
List: 1 WhileTest.cs
//find out the number of digits in a given number.

using System;

class WhileTest {

public static void Main(){
int i = 123;
int count = 0;
int n = i;

//while loop may execute zero times.
while(i > 0){
++count;
i = i/10;
(3 of 6) [11/27/2001 7:20:30 PM]

C# Corner: C# and .NET Developer's Network
}

Console.WriteLine("Number {0} contains {1} digits.",n,count);


}
}
The above code shows simple while loop, which finds out the number of digits in a number. for a given number i = 123,
the loop will execute tree times and hence the value of count will be three at the end of the while loop.
The above code has one logical flaw. If the number i is set to 0, the output of the code will be “Number 0 contains 0
digits.” Actually number 0 is of one digit. Since the condition for the while loop i>0 is false from beginning for the value
i=0, the while loop won’t execute any time and count will be zero. here is a solution:

List: 2 DoTest.cs
//find out the number of digits in a given number.
using System;

class DoTest {

public static void Main(){
int i = 0;
int count = 0;
int n = i;

do{
++count;
i = i/10;
}while(i > 0);


Console.WriteLine("Number {0} contains {1} digits.",n,count);


}
}

The Do-While construct checks condition in the end of the loop. Thus Do-while loop will execute atleast once even though
the condition to be checked is false from beginning.
The For Statement
//For loop with break and continue statements

List: 3 Fortest.cs

using System;

class ForTest {

public static void Main(){

for(int i = 0 ; i < 20 ; ++i){
if(i == 10)
break;
if(i == 5)
continue;

Console.WriteLine(i);
}
}
(4 of 6) [11/27/2001 7:20:30 PM]
C# Corner: C# and .NET Developer's Network

}

The For loop is good when we know how many times the loop needs to be executed. the output of the above code will be:
0
1
2
3
4
6
7
8
9

isn’t it self explanatory? when i becomes 5, the loop will skip over the remaining statements in the loop and go back to the
post loop action. thus 5 is not part of the output. when i becomes 10, control will break out of the loop.
The foreach statement
This statement allows to iterate over the elements in arrays and collections. here is a simple example.

List: 4 ForEach.cs

//foreach loop

using System;

class ForEach {

public static void Main(){

string[] a = {"Chirag","Bhargav","Tejas"};


foreach(string b in a)
Console.WriteLine(b);

}
}

Within the foreach loop parenthesis , the expression is made up of two parts separated by keyword in. The right hand side
of in is the collection and left hand side is the variable with type identifier matching to whatever type the collection returns.

Every time the collection is queried for a new value. As long as the collection returns value, the value is put into the
variable and expression will return true. when the collection is fully traversed, the expression will return false and control
will be transferred to the next statement after a loop.
(5 of 6) [11/27/2001 7:20:30 PM]
C# Corner: C# and .NET Developer's Network

Enjoy Coding.
About the Author: Amisha Mehta, currently working as Academic Head with STG, Ahmedabad, INDIA. More
details are coming soon

contact:
copyright © 2000 c-sharpcorner.com. All rights are reserved. See
terms and condition to use this site and its contents.
Sponsors:
devexpress microgold apress

(6 of 6) [11/27/2001 7:20:30 PM]
C# Corner: C# and .NET Developer's Network





All Source Code
ADO.NET
Exception
Handling
General
GDI+
Internet
Mobiling
Multithreading
Networking
Printing
Security
Strings & Arrays
Windows Forms
WebForms
XML.NET
-
Articles
Effective C#
FAQ
How do I
Learn C#
Tutorials
Source Code
Articles
FAQ
Learn VB.NET
Tutorials
Source Code

Articles
FAQ
Learn ASP.NET
Tutorials
COBOL.NET
Eiffel.NET
FoxPro.NET
JScript .NET
Learn XML
Mobile & SOAP
My Services
Open Source
VBScript .NET
VC++.NET
Visual J#
Visual Studio.NET
Control Statements
Author: Amisha Mehta
Control Statements – Loops
This lesson shows you how to use c# looping statements. In c#, there are four iteration constructs rather than three. There
are familiar for, do, while loops and a new one from Visual basic, foreach.
Let us start with while loop.
The Do and While Statements
List: 1 WhileTest.cs

//find out the number of digits in a given number.

using System;

class WhileTest {


public static void Main(){
int i = 123;
int count = 0;
int n = i;

//while loop may execute zero times.
while(i > 0){
++count;
i = i/10;
}

Console.WriteLine("Number {0} contains {1} digits.",n,count);


}
}
The above code shows simple while loop, which finds out the number of digits in a number. for a given number i = 123,
the loop will execute tree times and hence the value of count will be three at the end of the while loop.
The above code has one logical flaw. If the number i is set to 0, the output of the code will be “Number 0 contains 0
digits.” Actually number 0 is of one digit. Since the condition for the while loop i>0 is false from beginning for the value
i=0, the while loop won’t execute any time and count will be zero. here is a solution:
List: 2 DoTest.cs
//find out the number of digits in a given number.
using System;

class DoTest {

public static void Main(){
int i = 0;

int count = 0;

(1 of 3) [11/27/2001 7:20:44 PM]
C# Corner: C# and .NET Developer's Network
About Us
Books
Book Chapters
Career Center
Discussion
Downloads
Events
Hosting
Links
Magazines
Members
News Letter
Sponsors
Training
Tools
Jobs
Join C# Corner
Our Partners
Submit Code
Win Prizes
Mindcracker
int n = i;

do{
++count;
i = i/10;

}while(i > 0);

Console.WriteLine("Number {0} contains {1} digits.",n,count);


}
}

The Do-While construct checks condition in the end of the loop. Thus Do-while loop will execute atleast once even though
the condition to be checked is false from beginning.
The For Statement
//For loop with break and continue statements

List: 3 Fortest.cs

using System;

class ForTest {

public static void Main(){

for(int i = 0 ; i < 20 ; ++i){
if(i == 10)
break;
if(i == 5)
continue;

Console.WriteLine(i);
}
}

}
The For loop is good when we know how many times the loop needs to be executed. the output of the above code will be:
0
1
2
3
4
6
7
8
9

isn’t it self explanatory? when i becomes 5, the loop will skip over the remaining statements in the loop and go back to the
(2 of 3) [11/27/2001 7:20:44 PM]
C# Corner: C# and .NET Developer's Network
post loop action. thus 5 is not part of the output. when i becomes 10, control will break out of the loop.
The foreach statement
This statement allows to iterate over the elements in arrays and collections. here is a simple example.
List: 4 ForEach.cs

//foreach loop

using System;

class ForEach {

public static void Main(){

string[] a = {"Chirag","Bhargav","Tejas"};


foreach(string b in a)
Console.WriteLine(b);

}
}
Within the foreach loop parenthesis , the expression is made up of two parts separated by keyword in. The right hand side
of in is the collection and left hand side is the variable with type identifier matching to whatever type the collection returns.
Every time the collection is queried for a new value. As long as the collection returns value, the value is put into the
variable and expression will return true. when the collection is fully traversed, the expression will return false and control
will be transferred to the next statement after a loop.
Enjoy Coding.
About the Author: Amisha Mehta, currently working as Academic Head with STG, Ahmedabad, INDIA. More
details are coming soon

contact:
copyright © 2000 c-sharpcorner.com. All rights are reserved. See
terms and condition to use this site and its contents.
Sponsors:
devexpress microgold apress

(3 of 3) [11/27/2001 7:20:44 PM]
C# Corner: C# and .NET Developer's Network




All Source Code
ADO.NET
Exception
Handling

General
GDI+
Internet
Mobiling
Multithreading
Networking
Printing
Security
Strings & Arrays
Windows Forms
WebForms
XML.NET
-
Articles
Effective C#
FAQ
How do I
Learn C#
Tutorials
Source Code
Articles
FAQ
Learn VB.NET
Tutorials
Source Code
Articles
FAQ
Learn ASP.NET
Tutorials
COBOL.NET

Eiffel.NET
FoxPro.NET
JScript .NET
Learn XML
Mobile & SOAP
My Services
Open Source
VBScript .NET
VC++.NET
Visual J#
Visual Studio.NET

Learn C#: C# language's preprocessor directives
Author Date of Submission User Level
Vivek Gupta 6/5/2001 Beginner
C# preprocessor is fundamentally very similar to C preprocessor and the whole concept in C# has been taken from C language
specification.
“The C preprocessor is a macro processor that is used automatically by the C compiler to transform your
program before actual compilation. It is called a macro processor because it allows you to define macros,
which are brief abbreviations for longer constructs.”
But in C# only concept has been taken from C. But the C# compiler does not have a separate
preprocessor, the directives described in this C# are processed as if there was one. Unlike C and C++
directives, you cannot use these directives to create macros.
A preprocessor directive must be the only instruction on a line. Preprocessing directives are lines in your
program that start with `#'. Whitespace is allowed before and after the `#'. The `#' is followed by an
identifier that is the directive name. For example, `#define' is the directive
The C# language's preprocessor directives are as follows
● #if
● #else
● #elif

● #endif
● #define
● #undef
● #warning
● #error
● #line
● #region
● #endregion
Main use of directives are
1. Conditional compilation. Using special preprocessing directives, you can include or exclude parts
of the program according to various conditions.
2. Line control. If you use a program to combine or rearrange source files into an intermediate file,
which is then compiled, you can use line control to inform the compiler of where each source line
originally came from.
3. Error and Warning reporting: The directive `#error' causes the preprocessor to report a fatal
error and the directive `#warning' is like the directive `#error', but causes the preprocessor to
issue a warning and continue preprocessing.
Region and Unregion is new directives. It was not in C and C++ list of directives. I don’t know the intention of C#
developers to excludes number of directive from C and C++ list but they picked what people use atmost from list of C and C++
directive. Before telling meaning of each preprocessor directive I want to explain how to define preprocessor directive. There are two
method to define directive.
1. Define in your C# program
(1 of 6) [11/27/2001 7:26:05 PM]
C# Corner: C# and .NET Developer's Network
About Us
Books
Book Chapters
Career Center
Discussion
Downloads

Events
Hosting
Links
Magazines
Members
News Letter
Sponsors
Training
Tools
Jobs
Join C# Corner
Our Partners
Submit Code
Win Prizes
Mindcracker
2. Define them at command line on compile time
Here is example for first way
Example
#define TEST
using System;
public class MyClass
{
public static void Main()
{
#if (TEST)
Console.WriteLine("TEST is defined");
#else
Console.WriteLine("TEST is not defined");
#endif
}

}
Output
TEST is defined
In other way you can define it at command line. So program will be like this.
Example
using System;
public class MyClass
{
public static void Main()
{
#if (TEST)
Console.WriteLine("TEST is defined");
#else
Console.WriteLine("TEST is not defined");
#endif
}
}
At compile time user can define as below
csc /define:TEST MyClass.java
Output
TEST is defined
And if the command line will be like
csc MyClass.java
Output
TEST is not defined
Now its time to explain about various preprocessor define.
#if directive
The `#if' directive in its simplest form consists of

(2 of 6) [11/27/2001 7:26:05 PM]

C# Corner: C# and .NET Developer's Network

#if expression
controlled text
#endif /* expression */

The comment following the `#endif' is not required, but it is a good practice because it helps people
match the `#endif' to the corresponding `#if'. Such comments should always be used, except in short
conditionals that are not nested.
Above two example have shown how to use `#if` directive.
#else directive
The `#else' directive can be added to a conditional to provide alternative text to be used if the condition is
false. This is what it looks like:


#if expression
text-if-true
#else /* Not expression */
text-if-false
#endif /* Not expression */

If expression is nonzero, and thus the text-if-true is active, then `#else' acts like a failing conditional and
the text-if-false is ignored.
#elif directive
`#elif' stands for "else if". Like `#else', it goes in the middle of a `#if'-`#endif' pair and subdivides it; it
does not require a matching `#endif' of its own. Like `#if', the `#elif' directive includes an expression to
be tested.
The text following the `#elif' is processed only if the original `#if'-condition failed and the `#elif'
condition succeeds. More than one `#elif' can go in the same `#if'-`#endif' group. Then the text after
each `#elif' is processed only if the `#elif' condition succeeds after the original `#if' and any previous

`#elif' directives within it have failed. `#else' is equivalent to `#elif 1', and `#else' is allowed after any
number of `#elif' directives, but `#elif' may not follow `#else'.
Example
(3 of 6) [11/27/2001 7:26:05 PM]
C# Corner: C# and .NET Developer's Network
#define DEBUG
#define VC_V6
using System;
public class MyClass
{
public static void Main()
{
#if (DEBUG && !VC_V6)
Console.WriteLine("DEBUG is defined");
#elif (!DEBUG && VC_V6)
Console.WriteLine("VC_V6 is defined");
#elif (DEBUG && VC_V6)
Console.WriteLine("DEBUG and VC_V6 are defined");
#else
Console.WriteLine("DEBUG and VC_V6 are not defined");
#endif
}
}
Output
DEBUG and VC_V6 are defined
#endif directive
#endif specifies the end of a conditional directive, which began with the #if directive.
#define directive
#define lets you define a symbol, such that, by using the symbol as the expression passed to the #if
directive, the expression will evaluate to true

#undef directive
#undef lets you undefine a symbol, such that, by using the symbol as the expression in a #if directive,
the expression will evaluate to false.
Example
// compile with /D:DEBUG
#undef DEBUG
using System;
public class MyClass
{
public static void Main()
{
#if DEBUG
Console.WriteLine("DEBUG is defined");
#else
Console.WriteLine("DEBUG is not defined");
#endif
}
}
Output
DEBUG is not defined
The `#error' and `#warning' Directives
The directive `#error' causes the preprocessor to report a fatal error. The tokens forming the rest of the
line following `#error' are used as the error message.
The directive `#warning' is like the directive `#error', but causes the preprocessor to issue a warning and
(4 of 6) [11/27/2001 7:26:05 PM]
C# Corner: C# and .NET Developer's Network
continue preprocessing. The tokens following `#warning' are used as the warning message.
Example 1
#define DEBUG
public class MyClass

{
public static void Main()
{
#if DEBUG
#error DEBUG is defined
#endif
}
}
Example 2
#define DEBUG
public class MyClass
{
public static void Main()
{
#if DEBUG
#warning DEBUG is defined
#endif
}
}
#line
#line is a directive that specifies the original line number and source file name for subsequent input in the
current preprocessor input file.
Example
using System;
public class MyClass
{
public static void Main()
{
#line 100 "abc.sc" // change file name in the compiler output
intt i; // error will be reported on line 101

}
}
#region
#region lets you specify a block of code that you can expand or collapse when using the outlining feature
of the Visual Studio Code Editor.
Example
#region MyClass definition
public class MyClass
{
public static void Main()
{
}
}
#endregion
(5 of 6) [11/27/2001 7:26:05 PM]
C# Corner: C# and .NET Developer's Network
#endregion
#endregion marks the end of a #region block.

About the Author: Vivek K Gupta has done his MCA from REC Allahabad. Having 6 year of rich experience on various techs
as C, JAVA ,EJB, UNIX, XML, Oracle and Web related technologies.Currently working on JAVA project and beginner for C# and
.NET Framework
More about Vivek
contact:
copyright © 2000 c-sharpcorner.com. All rights are reserved. See
terms and condition to use this site and its contents.
Sponsors:
devexpress microgold apress

(6 of 6) [11/27/2001 7:26:05 PM]

C# Corner: C# and .NET Developer's Network




All Source Code
ADO.NET
Exception
Handling
General
GDI+
Internet
Mobiling
Multithreading
Networking
Printing
Security
Strings & Arrays
Windows Forms
WebForms
XML.NET
-
Articles
Effective C#
FAQ
How do I
Learn C#
Tutorials
Source Code
Articles

FAQ
Learn VB.NET
Tutorials
Source Code
Articles
FAQ
Learn ASP.NET
Tutorials
COBOL.NET
Eiffel.NET
FoxPro.NET
JScript .NET
Learn XML
Mobile & SOAP
My Services
Open Source
VBScript .NET
VC++.NET
Visual J#
Visual Studio.NET

Properties in C# : A new cover on old book
Author
Date of
Submission
User Level
Vivek Gupta 06/06/2001 Beginner
I do not write only because I want to write. I always try to present topics in easiest way so that beginner in C# could
understand. Vivek
Properties are accessor methods whose job it is to retrieve and set the values

of fields
. It provides a way to protect a field in a class by reading and writing
and also support object-oriented concept of encapsulation. In other language
user can use this feature using getter and setter methods. When user wants to
wrap a value in attribute of an object or get the value from attribute of an
object and when want to use attribute value. It is always useful to use setter
method to wrap value in attribute and getter method to retrieve value from
attribute of an object. Properties provide a level of abstraction to user.
Most of object-oriented programmer used getter and setter method. As in Java
language user used accessor method as below.
A Java Program
public class PersonAge
{
private int age; // private local variable
public void getAge() //get accessor method
{
return age;
}
public void setAge(int age) //set accessor method
{
myAge = age;
}
}
In main program user wants to use these set and get method to set and get
person age. They will use it as
PersonAge boyAge = new PersonAge(); //create instance of object
boyAge.setAge(10); // set the age of boy by using setter method of object
Syetm.out.println(“ Boy age is “+boyAge.getAge()); // get the age of boy by
using
// getter method of object

These setter and getter method was very useful in object-oriented world.
In .NET framework in C# these setter and getter method are presented under
the heading properties. Now in .NET framework way of presentation of
properties is very smoother and useful to the programmer.
(1 of 5) [11/27/2001 7:36:17 PM]
C# Corner: C# and .NET Developer's Network
About Us
Books
Book Chapters
Career Center
Discussion
Downloads
Events
Hosting
Links
Magazines
Members
News Letter
Sponsors
Training
Tools
Jobs
Join C# Corner
Our Partners
Submit Code
Win Prizes
Mindcracker
Above code in C#
A C# Code
public class PersonAge

{
private int age; // private local variable
public int humanAge
{
get //get accessor method
{
return age;
}
set //set accessor method
{
age = value;
}
}
}
So when in main program(C#) user wants to use these set and get method to set and get person age. They
will use it as
PersonAge boyAge = new PersonAge(); //create instance of object
boyAge. humanAge = 10; // set the age of boy by using setter method of
object
int bAge = boyAge. humanAge; // get the age of boy by
// using getter method of object
Console.WriteLine(“ Boy age is {0}“+ bAge );
Class PersonAge is property holder class. In which humanAge is property implementation. I will try to
explain about each line how it works.
value : In set method value variable is internal c# variable. User no needs to
define it explicitly.
boyAge. humanAge = 10; calls set method and set the value for variable
myAge as 10.
bAge = boyAge. humanAge ( last one in program) calls get method and get
value 10;

Now you may notice that the setter doesn't take any arguments. The value
being passed is automatically placed in a variable named value that is
accessible inside the setter method.
Some one may be wonder that when they are not passing any data for set
methods how it works internally.
I want also to show that how it internally works. I used my favorite ILDASM.exe (Intermediate Language
Disassembler). (Read my article to know more about
ILDAM)
Run ILDASM.exe XXXX.exe on command prompt
User will see output as below.
(2 of 5) [11/27/2001 7:36:17 PM]

×