C#.NET 7.
Harsha Vardhan
.NET Expert
Table of Contents
.NET -
Basics ............................................................................
.............................................. 23
Introduction to
.NET ..............................................................................
....................................... 24
Features of
.NET ..............................................................................
............................................. 25
Java (vs)
.NET ..............................................................................
.................................................. 27
Versions of
.NET ..............................................................................
.............................................. 28
.NET Framework (vs) Visual
Studio ............................................................................
................ 29
Versions of Visual
Studio ............................................................................
................................. 30
System Requirements of Visual Studio
2015 ........................................................................... 32
System Requirements of .NET Framework
4.6 ........................................................................ 33
Execution Model of .NET
Program ...........................................................................
................. 34
CIL (or)
MSIL ..............................................................................
.................................................... 36
CLR ...............................................................................
.................................................................. 37
CLS ...............................................................................
................................................................... 41
CTS ...............................................................................
................................................................... 42
FCL ...............................................................................
................................................................... 43
.NET Framework
Architecture ......................................................................
.............................. 37
C#.NET � Console
Applications ......................................................................
... 44
Introduction to
C#.NET.............................................................................
................................... 45
Project and
Solution ..........................................................................
........................................... 47
File Types of
.NET ..............................................................................
........................................... 48
Folder Structure of .NET
Program ...........................................................................
.................. 49
Tokens of
C#.NET ............................................................................
............................................. 50
Console Application Development in
C#.NET ......................................................................... 51
Console Application
Development .......................................................................
..................... 52
In C#.NET -
Example ...........................................................................
.......................................... 52
I/O Statements in
C#.NET ............................................................................
............................... 54
System.Console.WriteLine �
Example ...........................................................................
............ 56
System.Console.ReadKey
� .................................................................................
........................ 58
Example ...........................................................................
.............................................................. 58
System.Console.Clear -
Example ...........................................................................
..................... 60
Variables in
C#.NET ............................................................................
.......................................... 63
Variables -
Example ...........................................................................
........................................... 64
Data Types in
C#.NET ............................................................................
....................................... 66
Numerical Data Types in
C#.NET ............................................................................
................... 67
Numerical Data Types -
Example ...........................................................................
.................... 69
MinValue and
MaxValue ..........................................................................
.................................... 72
MinValue and MaxValue -
Example ...........................................................................
................ 73
Non-Numerical Data Types in
C#.NET ............................................................................
........... 75
char -
Example ...........................................................................
.................................................... 76
String in
C#.NET ............................................................................
................................................ 78
String -
Example ...........................................................................
................................................. 79
Bool in
C#.NET ............................................................................
.................................................. 81
Operators in
C#.NET ............................................................................
........................................ 83
Arithmetical Operators in
C#.NET ............................................................................
................. 84
Arithmetical Operators -
Example ...........................................................................
.................. 85
Assignment Operators in
C#.NET ............................................................................
.................. 88
Assignment Operators -
Example ...........................................................................
................... 89
Increment / Decrement Operators in
C#.NET ......................................................................... 92
Increment / Decrement Operators -
Example .........................................................................
93
Relational Operators in
C#.NET ............................................................................
..................... 95
Relational Operators -
Example ...........................................................................
...................... 96
Logical Operators in
C#.NET.............................................................................
.......................... 98
Logical Operators -
Example ...........................................................................
............................ 99
Concatenation Operator in
C#.NET.............................................................................
............ 101
Concatenation Operator -
Example ...........................................................................
.............. 102
Conditional Operator in
C#.NET ............................................................................
.................. 104
Conditional Operator -
Example ...........................................................................
................... 105
Control Statements in
C#.NET ............................................................................
..................... 107
If in
C#.NET ............................................................................
..................................................... 108
If -
Example ...........................................................................
...................................................... 111
If � Else -
Example ...........................................................................
............................................ 113
Else � If -
Example ...........................................................................
............................................ 115
Nested If -
Example ...........................................................................
......................................... 117
Switch � Case in
C#.NET ............................................................................
................................ 119
Switch � Case -
Example ...........................................................................
.................................. 120
While in
C#.NET ............................................................................
.............................................. 122
While -
Example ...........................................................................
................................................ 123
Do � While in
C#.NET ............................................................................
..................................... 125
Do � While -
Example ...........................................................................
....................................... 126
For in
C#.NET ............................................................................
................................................... 128
For -
Example ...........................................................................
.................................................... 129
Break in
C#.NET ............................................................................
.............................................. 131
Break -
Example ...........................................................................
............................................... 132
Continue in
C#.NET ............................................................................
........................................ 134
Continue -
Example ...........................................................................
......................................... 135
Goto in
C#.NET ............................................................................
................................................ 137
Goto -
Example ...........................................................................
................................................. 138
Nested For Loops in
C#.NET ............................................................................
......................... 140
Nested For Loops in C#.NET -
Example ...........................................................................
....... 141
Methods in
C#.NET ............................................................................
......................................... 143
Methods � Simple
Example ...........................................................................
............................ 145
Methods � Complex
Example ...........................................................................
........................ 147
Arguments and Return -
Example ...........................................................................
................. 149
Scope of
Variables .........................................................................
............................................. 151
Default Arguments in
C#.NET ............................................................................
...................... 152
Default Arguments -
Example ...........................................................................
....................... 153
Named Parameters in
C#.NET ............................................................................
...................... 155
Named Parameters -
Example ...........................................................................
....................... 156
Methods Overloading in
C#.NET ............................................................................
................. 158
Methods Overloading -
Example ...........................................................................
................... 159
Types of parameters in
C#.NET ............................................................................
.................... 161
Call by value -
Example ...........................................................................
................................... 162
Call by reference -
Example ...........................................................................
........................... 164
Call by output -
Example............................................................................
................................ 166
Type Conversion in
C#.NET ............................................................................
........................... 168
Implicit Casting in
C#.NET ............................................................................
............................. 169
Implicit Casting -
Example ...........................................................................
.............................. 170
Explicit Casting (or) Type Casting in
C#.NET..........................................................................
172
Explicit Casting (or) Type Casting -
Example ..........................................................................
173
Parsing in
C#.NET ............................................................................
........................................... 175
Parsing -
Example ...........................................................................
............................................ 176
TryParse in
C#.NET ............................................................................
......................................... 178
TryParse -
Example ...........................................................................
.......................................... 179
TryParse � Example
2 .................................................................................
................................ 181
Conversion Methods in
C#.NET ............................................................................
................... 183
Conversion Methods -
Example ...........................................................................
..................... 185
C#.NET � Object Oriented Programming (OOP) ............................ 187
Introduction to Object Oriented Programming in
C#.NET ................................................. 188
Objects in
C#.NET ............................................................................
........................................... 189
Data Members and Methods in
C#.NET ............................................................................
...... 190
Classes in
C#.NET ............................................................................
............................................ 191
Object Oriented Programming � Simple
Example ................................................................ 195
Object Oriented Programming � Advanced
Example .......................................................... 198
Console.ReadLine in
C#.NET ............................................................................
........................ 201
Console.ReadLine -
Example ...........................................................................
.......................... 202
Methods � Example 1 -
Age ...............................................................................
........................ 206
Methods � Example 2 -
Numbers ...........................................................................
.................. 209
Methods � Example 3 -
Login .............................................................................
....................... 214
Methods � Example 4 -
Student ...........................................................................
.................... 218
Constructors in
C#.NET ............................................................................
................................. 224
Parameterless Constructor -
Example ...........................................................................
......... 226
Parameterized Constructor -
Example ...........................................................................
......... 228
Constructors - Student -
Example ...........................................................................
................. 230
Object Initializer in
C#.NET ............................................................................
........................... 233
Object Initializer -
Example ...........................................................................
............................ 234
"this" keyword in
C#.NET ............................................................................
.............................. 237
"this" keyword -
Example ...........................................................................
............................... 238
"Set" and "Get" Methods in
C#.NET ............................................................................
............ 240
"Set" and "Get" Methods -
Example ...........................................................................
............. 242
Properties in
C#.NET ............................................................................
...................................... 244
Properties -
Example ...........................................................................
....................................... 246
Readonly and WriteOnly Properties in
C#.NET ..................................................................... 248
Readonly Properties -
Example ...........................................................................
..................... 249
Automatic Properties in
C#.NET ............................................................................
.................. 251
Automatic Properties -
Example ...........................................................................
................... 252
Objects as Arguments in
C#.NET ............................................................................
................. 254
Objects as Arguments -
Example ...........................................................................
.................. 255
Multiple Objects as Arguments in
C#.NET ............................................................................
. 257
Multiple Objects as Arguments -
Example ...........................................................................
.. 258
Objects as Data Members in
C#.NET ............................................................................
........... 261
Objects as Data Members -
Example ...........................................................................
............ 262
Inheritance in
C#.NET ............................................................................
.................................... 264
Inheritance -
Example ...........................................................................
..................................... 265
Inheritance � Example
2 .................................................................................
........................... 267
�base� keyword in
C#.NET ............................................................................
............................ 270
�base� keyword -
Example ...........................................................................
.............................. 271
Parent class�s constructor in
C#.NET ............................................................................
.......... 274
Parent class�s constructor -
Example ...........................................................................
............ 275
Method Hiding in
C#.NET ............................................................................
.............................. 279
Method Hiding -
Example ...........................................................................
............................... 280
Method Hiding � Example
2 .................................................................................
..................... 282
Method Overriding in
C#.NET ............................................................................
...................... 285
Method Overriding -
Example ...........................................................................
....................... 287
Method Overriding � Example
2 .................................................................................
............. 289
Abstract Classes in
C#.NET ............................................................................
........................... 292
Abstract Classes -
Example ...........................................................................
............................ 293
Abstract Classes � Example
2 .................................................................................
.................. 295
Abstract Methods in
C#.NET ............................................................................
........................ 298
Abstract Methods -
Example............................................................................
......................... 301
Abstract Methods � Example
2..................................................................................
............... 303
Interfaces in
C#.NET ............................................................................
....................................... 307
Interfaces -
Example ...........................................................................
........................................ 311
Interfaces � Example
2 .................................................................................
.............................. 313
Dynamic Polymorphism in
C#.NET ............................................................................
.............. 316
Dynamic Polymorphism -
Example ...........................................................................
............... 317
Dynamic Polymorphism � Example
2..................................................................................
..... 319
Multiple Inheritance in
C#.NET ............................................................................
.................... 322
Multiple Inheritance -
Example ...........................................................................
..................... 323
Interface Inheritance in
C#.NET ............................................................................
................... 326
Interface Inheritance -
Example ...........................................................................
.................... 327
Principles of Object Oriented
Programming .......................................................................
.. 330
Sealed Classes in
C#.NET.............................................................................
.............................. 333
Sealed Classes -
Example ...........................................................................
................................ 334
Namespaces in
C#.NET ............................................................................
.................................. 336
Namespaces -
Example ...........................................................................
................................... 337
Child Namespaces in
C#.NET ............................................................................
........................ 339
Child Namespaces -
Example ...........................................................................
......................... 340
Child Namespaces � Example
2 .................................................................................
............... 342
�using� statement in
C#.NET ............................................................................
........................ 344
�using� statement -
Example ...........................................................................
......................... 345
�using - alias� statement in
C#.NET ............................................................................
............. 347
�using - alias� statement -
Example ...........................................................................
.............. 348
Creating Separate Files for Classes in
C#.NET ...................................................................... 350
Creating Separate Files for Classes -
Example ....................................................................... 351
Partial Classes in
C#.NET ............................................................................
............................... 353
Partial Classes -
Example ...........................................................................
................................ 354
Enumerations in
C#.NET ............................................................................
................................ 358
Enumerations -
Example ...........................................................................
................................. 359
Structures in
C#.NET ............................................................................
...................................... 361
Structures -
Example ...........................................................................
....................................... 364
Structures with Constructors -
Example ...........................................................................
...... 366
Standard Data
Types .............................................................................
..................................... 369
The "System.Object" class in
C#.NET ............................................................................
.......... 370
�System.Object� Class -
Example ...........................................................................
.................. 371
Methods of "System.Object"
class .............................................................................
.............. 373
Methods of �System.Object� class -
Example ........................................................................
374
Boxing in
C#.NET ............................................................................
............................................ 377
Boxing -
Example ...........................................................................
............................................. 378
Unboxing in
C#.NET ............................................................................
....................................... 380
Unboxing -
Example ...........................................................................
......................................... 381
Static Data Members in
C#.NET ............................................................................
................... 383
Static Data Members -
Example ...........................................................................
.................... 384
Static Constructors in
C#.NET ............................................................................
...................... 387
Static Constructors -
Example ...........................................................................
....................... 389
Static Methods in
C#.NET.............................................................................
............................. 391
Static Methods -
Example ...........................................................................
............................... 393
Static Classes in
C#.NET ............................................................................
................................ 395
Static Classes -
Example............................................................................
................................. 396
Constant Data Members in
C#.NET ............................................................................
............. 399
Constant Data Members -
Example ...........................................................................
.............. 400
ReadOnly Data Members in
C#.NET ............................................................................
............ 402
ReadOnly Data Members -
Example ...........................................................................
............. 403
Generic Classes in
C#.NET ............................................................................
............................. 406
Generic Classes -
Example ...........................................................................
.............................. 407
Multiple Generics -
Example ...........................................................................
.......................... 409
Arrays in
C#.NET ............................................................................
............................................. 411
Arrays -
Example ...........................................................................
.............................................. 412
Arrays with For Loop in
C#.NET ............................................................................
................... 414
Arrays with For Loop -
Example ...........................................................................
.................... 415
Arrays with Foreach
Loop...............................................................................
........................... 417
in
C#.NET ............................................................................
......................................................... 417
Arrays with Foreach Loop �
Example ...........................................................................
........... 418
�System.Array� class in
C#.NET ............................................................................
.................... 420
�System.Array.IndexOf� method in
C#.NET ...........................................................................
421
�System.Array.IndexOf� method -
Example ...........................................................................
422
�System.Array.IndexOf� method � with NotFound -
Example ............................................ 424
�System.Array.BinarySearch� method in
C#.NET .................................................................. 426
�System.Array.BinarySearch� method -
Example .................................................................. 427
�System.Array.Clear� method in
C#.NET ............................................................................
.... 429
�System.Array.Clear� method -
Example ...........................................................................
..... 430
�System.Array.Resize� method in
C#.NET ............................................................................
.. 432
�System.Array.Resize� method -
Example ...........................................................................
... 433
�System.Array.Sort� method in
C#.NET ............................................................................
...... 435
�System.Array.Sort� method -
Example ...........................................................................
....... 436
�System.Array.Reverse� method in
C#.NET ...........................................................................
438
�System.Array.Reverse� method -
Example ...........................................................................
439
�System.Array.CopyTo� method in
C#.NET ............................................................................
441
�System.Array.CopyTo� method -
Example ...........................................................................
. 442
Multi-Dimensional Array in
C#.NET ............................................................................
............. 444
Multi-Dimensional Array -
Example ...........................................................................
.............. 445
Introduction to Collections in
C#.NET ............................................................................
........ 448
The "List" class in
.NET ..............................................................................
................................. 450
The "List" class -
Example ...........................................................................
............................... 451
The "List" class � with �for� loop in
C#.NET ...........................................................................
453
The "List" class � with �for� loop -
Example ...........................................................................
454
The "List" class � with �foreach� loop in
C#.NET ................................................................... 456
The "List" class � with �foreach� loop -
Example ................................................................... 457
"System.Collections.Generic. List.Add" method in
C#.NET................................................. 459
"System.Collections.Generic. List.Add" method -
Example ................................................. 460
"System.Collections.Generic. List. Insert" method in
C#.NET ............................................ 462
"System.Collections.Generic. List.Insert" method -
Example.............................................. 463
"System.Collections.Generic. List.AddRange" method in
C#.NET ..................................... 465
"System.Collections.Generic. List.AddRange" method -
Example ..................................... 466
"System.Collections.Generic. List.InsertRange" method in
C#.NET .................................. 469
"System.Collections.Generic. List.InsertRange" method -
Example .................................. 470
"System.Collections.Generic. List.Remove" method in
C#.NET ......................................... 472
"System.Collections.Generic. List.Remove" method -
Example ......................................... 473
"System.Collections.Generic. List.RemoveAt" method in
C#.NET ..................................... 475
"System.Collections.Generic. List.RemoveAt" method -
Example ..................................... 476
"System.Collections.Generic. List.Clear" method in
C#.NET .............................................. 478
"System.Collections.Generic. List.Clear" method -
Example ............................................... 479
"System.Collections.Generic. List.IndexOf" method in
C#.NET ......................................... 481
"System.Collections.Generic. List.IndexOf" method -
Example ......................................... 482
"System.Collections.Generic. List.IndexOf" method � Not Found-
Example ................... 484
"System.Collections.Generic. List.BinarySearch" method in
C#.NET ................................ 486
"System.Collections.Generic. List.BinarySearch" method -
Example ................................ 487
"System.Collections.Generic. List.Contains" method in
C#.NET ........................................ 489
"System.Collections.Generic. List.Contains" method -
Example ........................................ 490
"System.Collections.Generic. List.Reverse" method in
C#.NET ......................................... 492
"System.Collections.Generic. List.Reverse" method -
Example.......................................... 493
"System.Collections.Generic. List.Sort" method in
C#.NET ................................................ 495
"System.Collections.Generic. List.Sort" method -
Example ................................................ 496
System.Collections.Generic. List - Sort Descending -
Example ........................................... 498
Collection Filter in
.NET ..............................................................................
............................... 500
Collection Filter -
Example ...........................................................................
............................. 501
LINQ in
.NET ..............................................................................
.................................................. 503
LINQ -
Example ...........................................................................
................................................. 504
Collection of Objects in
.NET ..............................................................................
...................... 506
Collection of Objects -
Example ...........................................................................
.................... 507
Collection of Objects � Filter -
Example ...........................................................................
...... 509
Collection of Objects � LINQ -
Example ...........................................................................
....... 512
The "Dictionary" class in
.NET ..............................................................................
..................... 515
The "Dictionary" class -
Example ...........................................................................
................... 516
The "SortedList" class in
.NET ..............................................................................
..................... 518
The "SortedList" class -
Example ...........................................................................
................... 519
The "Hashtable" class in
.NET ..............................................................................
..................... 521
The "Hashtable" class -
Example ...........................................................................
................... 522
The "ArrayList" class in
.NET ..............................................................................
....................... 524
The "ArrayList" class -
Example ...........................................................................
..................... 525
The "typeof" operator in
.NET ..............................................................................
.................... 527
The "typeof" operator -
Example ...........................................................................
.................. 528
The "System.String" class in C#.NET (or) String Handling in
C#.NET ................................ 531
�System.String.Length� -
Example ...........................................................................
................ 535
�System.String.ToUpper� -
Example ...........................................................................
............. 537
�System.String.ToLower� -
Example ...........................................................................
............. 539
�System.String.GetChar� -
Example ...........................................................................
.............. 541
�System.String.Substring� � Example
1 .................................................................................
. 543
�System.String.Substring� � Example
2 .................................................................................
. 545
�System.String.Remove� �
Example ...........................................................................
............. 547
�System.String.Remove� � Example
2 .................................................................................
.... 549
�System.String.Insert� �
Example ...........................................................................
................. 551
�System.String.Equals� �
Example ...........................................................................
................ 553
�System.StringComparison. OrdinalIgnoreCase� �
Example .............................................. 555
�System.String.StartsWith� �
Example ...........................................................................
......... 557
�System.String.EndsWith� �
Example ...........................................................................
........... 559
�System.String.Contains� �
Example ...........................................................................
............ 561
�System.String.IndexOf� � Example
1 .................................................................................
.... 563
�System.String.IndexOf� � Example
2 .................................................................................
.... 565
�System.String.IndexOf� � Example
3 .................................................................................
.... 567
�System.String.LastIndexOf� �
Example ...........................................................................
...... 569
�System.String.Replace� �
Example............................................................................
............. 571
�System.String.ToCharArray� �
Example ...........................................................................
..... 573
Converting CharArray to String -
Example ...........................................................................
.. 575
�System.String.Split� �
Example ...........................................................................
.................... 577
�System.String.Trim� �
Example ...........................................................................
.................... 579
�System.String.Format� �
Example ...........................................................................
............... 581
�System.String.Reverse� �
Example ...........................................................................
............. 583
String � WordsCount -
Example............................................................................
.................... 585
String � Character Occurrence Count -
Example ................................................................... 587
String � Alphabetic Count -
Example ...........................................................................
............ 589
String � Word Occurrence Count -
Example ...........................................................................
591
String � Title Case -
Example ...........................................................................
.......................... 594
String � Currency into words -
Example ...........................................................................
....... 596
String � Multiple Concatenations -
Example ..........................................................................
600
The "System.Text.StringBuilder" class in
C#.NET ................................................................. 602
The "System.Text.StringBuilder" class -
Example ................................................................. 604
The "System.DateTime" structure in C#.NET (or) Date & Time Handling in
C#.NET ...... 606
The "System.DateTime" � First
Example ...........................................................................
.... 608
The "System.DateTime.Now"
�Example ..........................................................................
....... 610
The "System.DateTime" � Inner Values �
Example .............................................................. 612
The "System.DateTime.DayOfWeek" �
Example ................................................................... 614
The "System.DateTime.DayOfYear" �
Example ..................................................................... 616
The "System.DateTime. ToShortDateString" �
Example ..................................................... 618
The "System.DateTime. ToLongDateString" �
Example ...................................................... 620
The "System.DateTime. ToShortTimeString" �
Example ..................................................... 622
The "System.DateTime. ToLongTimeString" �
Example ...................................................... 624
The "System.DateTime" � Custom Formats �
Example ........................................................ 626
The "System.DateTime.Subtract" �
Example .........................................................................
628
The "System.DateTime.AddDays" �
Example ........................................................................
630
The "System.Math" class in
C#.NET ............................................................................
............. 632
The "System.Math.Abs"
�Example ..........................................................................
................. 634
The "System.Math.Floor"
�Example ..........................................................................
.............. 636
The "System.Math.Ceiling" �
Example ...........................................................................
......... 638
The "System.Math.Round" � Example
1 .................................................................................
. 640
The "System.Math.Round" � Example
2 .................................................................................
. 642
The "System.Math.Max"
�Example ..........................................................................
................ 644
The "System.Math.Min"
�Example ..........................................................................
................. 646
The "System.Math.Pow"
�Example ..........................................................................
................ 648
The "System.Math.Sqrt"
�Example ..........................................................................
................ 650
�System.Diagnostics.Process� class in
C#.NET ...................................................................... 652
�System.Diagnostics.Process� class -
Example ...................................................................... 653
Command Line Arguments in
C#.NET ............................................................................
......... 655
Command Line Arguments -
Example ...........................................................................
.......... 656
Nullable Data Types in
C#.NET ............................................................................
..................... 659
Nullable Data Types -
Example ...........................................................................
...................... 660
Exception Handling in
C#.NET ............................................................................
...................... 662
Exception Handling -
Example ...........................................................................
....................... 664
Destructor in
C#.NET ............................................................................
..................................... 666
Destructor -
Example ...........................................................................
...................................... 667
The "System.IDisposable"
interface .........................................................................
............... 669
The "System.IDisposable" interface -
Example ...................................................................... 670
Garbage Collection in
C#.NET ............................................................................
...................... 672
Garbage Collection -
Example ...........................................................................
....................... 673
Delegates in
C#.NET ............................................................................
...................................... 675
Single Cast Delegates -
Example ...........................................................................
................... 676
Multi Cast Delegates -
Example ...........................................................................
.................... 678
Events in
C#.NET ............................................................................
............................................. 680
Events -
Example ...........................................................................
.............................................. 682
Anonymous
Methods ...........................................................................
...................................... 684
Anonymous Methods -
Example............................................................................
................... 685
Lambda
Expressions .......................................................................
............................................ 687
Lambda Expressions -
Example ...........................................................................
..................... 688
Inline Lambda
Expressions .......................................................................
................................. 690
Inline Lambda Expressions -
Example ...........................................................................
.......... 691
Inner Classes in
C#.NET ............................................................................
................................. 693
Inner Classes -
Example ...........................................................................
.................................. 694
Indexer in
C#.NET ............................................................................
........................................... 696
Indexer -
Example ...........................................................................
............................................ 697
Assemblies in
C#.NET ............................................................................
.................................... 699
Class Libraries & Private Assemblies -
Example ..................................................................... 702
Shared Assemblies -
Example ...........................................................................
........................ 707
Access Modifiers in
C#.NET ............................................................................
.......................... 714
Access Modifiers -
Example ...........................................................................
............................ 717
Access Modifiers for
classes ...........................................................................
.......................... 720
Documentation
Comments ..........................................................................
............................. 721
Documentation Comments -
Example ...........................................................................
......... 722
Extension Methods in
C#.NET ............................................................................
...................... 724
Extension Methods -
Example ...........................................................................
....................... 725
C#.NET � Console - System.IO Namespace ..........................................
729
Introduction to "System.IO"
namespace .........................................................................
....... 730
The �System.IO.FileInfo�
class .............................................................................
..................... 731
The �System.IO.FileInfo� class -
Example ...........................................................................
.... 734
The �System.IO.DirectoryInfo�
class .............................................................................
.......... 736
The �System.IO.DirectoryInfo� class -
Example ..................................................................... 740
The �System.IO.Directory�
class .............................................................................
.................. 743
The �System.IO.Directory� class -
Example ...........................................................................
. 745
The �System.IO.File�
class .............................................................................
............................ 748
The �System.IO.File� class -
Example ...........................................................................
............ 750
The �System.IO.FileStream�
class .............................................................................
............... 752
The �System.IO.StreamWriter�
class .............................................................................
.......... 754
The �System.IO.StreamWriter� class -
Example..................................................................... 755
The �System.IO.StreamReader�
class .............................................................................
......... 757
The �System.IO.StreamReader� class -
Example ................................................................... 758
C#.NET � Console �
ADO.NET ...........................................................................
. 760
Database
Basics ............................................................................
.............................................. 761
Introduction to
ADO.NET ...........................................................................
............................... 763
ADO.NET � �SqlConnection�
class..............................................................................
.............. 765
SqlConnection � Windows Authentication �
Example ......................................................... 768
SqlConnection � SQL Server Authentication �
Example ...................................................... 771
The "SqlCommand" class in
ADO.NET ...........................................................................
.......... 774
ADO.NET -
ExecuteScalar .....................................................................
..................................... 777
SqlCommand � ExecuteScalar �
Example ...........................................................................
.... 778
SqlCommand � ExecuteScalar � Example
2 ............................................................................ 781
ADO.NET � Connection Oriented Model �
Introduction ...................................................... 784
The "SqlDataReader" class in
ADO.NET ...........................................................................
....... 786
ADO.NET � Connection Oriented
Model .............................................................................
... 788
ADO.NET Connection Oriented Model � Single Record �
Example ................................... 790
ADO.NET Connection Oriented Model � Multiple Records �
Example ............................. 794
The "SqlParameter" class in
ADO.NET ...........................................................................
........ 798
ADO.NET Connection Oriented Model � SqlParameter �
Example ................................... 801
ADO.NET Disconnected
Model .............................................................................
................... 805
The �SqlDataAdapter�
class .............................................................................
......................... 806
The �DataSet�
class .............................................................................
....................................... 807
DataSet -
Example ...........................................................................
........................................... 808
ADO.NET Disconnected Model �
Example ...........................................................................
.. 813
ADO.NET Disconnected Model � Multiple Tables -
Example .............................................. 817
ADO.NET Disconnected Model � Joins -
Example ................................................................. 823
ADO.NET Non Query - Insertion �
Example ...........................................................................
828
ADO.NET Non Query - Updation �
Example ...........................................................................
831
ADO.NET Non Query - Deletion �
Example ...........................................................................
. 834
ADO.NET Non Query � Insertion � With SqlParameter �
Example ..................................... 837
ADO.NET Non Query � Updation � With SqlParameter �
Example .................................... 841
ADO.NET Non Query � Deletion � With SqlParameter �
Example ..................................... 845
Stored Procedures Calling in
ADO.NET ...........................................................................
....... 848
ADO.NET Non Query � Insertion � With Stored Procedures �
Example ............................ 849
ADO.NET Non Query � Updation � With Stored Procedures �
Example ........................... 854
ADO.NET Non Query � Deletion � With Stored Procedures �
Example ............................ 859
ADO.NET -
Transactions.......................................................................
...................................... 863
ADO.NET � Transactions -
Example ...........................................................................
.............. 864
The "OleDb" namespace in
ADO.NET ...........................................................................
.......... 868
Connection Strings in
ADO.NET ...........................................................................
.................... 869
ADO.NET � Oracle -
Example ...........................................................................
......................... 870
ADO.NET � MS Access -
Example ...........................................................................
.................. 882
ADO.NET � MS Excel -
Example ...........................................................................
..................... 894
ADO.NET � SQL Server to Oracle -
Example...........................................................................
903
ADO.NET � SQL Server to MS Excel -
Example ...................................................................... 911
ADO.NET � Oracle to SQL Server -
Example...........................................................................
921
ADO.NET � Excel to SQL Server -
Example ...........................................................................
.. 929
ADO.NET � SQL Server to File -
Example ...........................................................................
..... 939
ADO.NET � File to SQL Server -
Example ...........................................................................
..... 944
The "SqlCommandBuilder" class in
ADO.NET ........................................................................
950
ADO.NET � SqlCommandBuilder � DataSet � Insertion -
Example ..................................... 951
ADO.NET � SqlCommandBuilder � DataSet � Updation -
Example .................................... 955
ADO.NET � SqlCommandBuilder � DataSet � Deletion -
Example ..................................... 959
N-Tier Architecture in
C#.NET ............................................................................
...................... 963
N-Tier Architecture -
Example ...........................................................................
....................... 964
LINQ to
SQL ...............................................................................
................................................. 972
LINQ to SQL -
Example ...........................................................................
.................................... 973
C#.NET � Console � Entity
Framework .................................................... 978
ADO.NET Entity
Framework .........................................................................
............................ 979
Entity Framework -
Example ...........................................................................
.......................... 982
Entity Framework � FirstOrDefault -
Example ....................................................................... 987
Entity Framework � Insertion -
Example ...........................................................................
...... 992
Entity Framework � Updation -
Example ...........................................................................
..... 997
Entity Framework � Deletion -
Example ...........................................................................
.... 1002
C#.NET � Windows Forms
Applications ................................................ 1007
Introduction to Windows Forms Applications in
C#.NET .................................................. 1008
The �System.Windows.Forms.Form�
class ............................................................................
1010
Programming Model of Windows Form in
C#.NET ............................................................. 1011
Windows Forms Application � First
Example .......................................................................
1013
Form Constructor -
Example ...........................................................................
........................ 1015
Properties of �System.Windows.Forms.Form�
class .......................................................... 1017
�System.Windows.Forms.Form. Text� property -
Example ............................................... 1020
�System.Windows.Forms.Form. ShowIcon� property -
Example ...................................... 1022
�System.Windows.Forms.Form. ShowInTaskBar� property
-Example ............................. 1024
�System.Windows.Forms.Form. MinimizeBox� property -
Example ................................ 1026
�System.Windows.Forms.Form. MaximizeBox� property -
Example ............................... 1028
�System.Windows.Forms.Form. ControlBox� property -
Example ................................... 1030
�System.Windows.Forms.Form. TopMost� property -
Example ....................................... 1032
�System.Windows.Forms.Form. WindowState� property
�Example ............................... 1034
�System.Windows.Forms.Form. FormBorderStyle� property �
Example ........................ 1036
�System.Windows.Forms.Form. Cursor� property -
Example............................................ 1038
�System.Windows.Forms.Form. BackColor� property -
Example ..................................... 1040
�System.Windows.Forms.Form. BackgroundImage� property �
Example ...................... 1042
�System.Windows.Forms.Form. Size� property -
Example ................................................ 1044
�System.Windows.Forms.Form. Location� property -
Example ........................................ 1046
�System.Windows.Forms.Form. Icon� property -
Example ................................................ 1048
Events of �System.Windows.Forms.Form�
class ................................................................. 1050
�System.Windows.Forms.Form. Load� event -
Example .................................................... 1051
�System.Windows.Forms.Form. Shown� event -
Example ................................................. 1053
�System.Windows.Forms.Form. Click� event -
Example ..................................................... 1055
�System.Windows.Forms.Form. DoubleClick� event -
Example ....................................... 1057
�System.Windows.Forms.Form. MouseClick� event -
Example ........................................ 1059
�System.Windows.Forms.Form. MouseMove� event -
Example ....................................... 1061
�System.Windows.Forms.Form. KeyPress� event -
Example ............................................. 1063
�System.Windows.Forms.Form. FormClosing� event -
Example ...................................... 1065
�System.Windows.Forms.Form. FormClosing� event - Example
2 ................................... 1067
Methods of �System.Windows.Forms.Form�
class ............................................................. 1070
�System.Windows.Forms.Form. Hide� method -
Example ................................................. 1071
�System.Windows.Forms.Form .Show� method -
Example ............................................... 1073
�System.Windows.Forms.Form. Close� method -
Example ............................................... 1075
Introduction to Windows Forms Controls in
C#.NET ......................................................... 1077
�System.Windows.Forms.Label�
class .............................................................................
...... 1079
�System.Windows.Forms.Label� class -
Example ................................................................ 1082
�System.Windows.Forms. Button�
class .............................................................................
.. 1086
�System.Windows.Forms. Button� class -
Example ............................................................. 1090
�System.Windows.Forms. Button� class � with Image -
Example ..................................... 1094
�System.Windows.Forms. Button� class � with Label -
Example ...................................... 1098
�System.Windows.Forms. TextBox�
class .............................................................................
1103
�System.Windows.Forms. TextBox� class -
Example .......................................................... 1108
�System.Windows.Forms. TextBox� class � With AutoComplete -
Example .................. 1112
�System.Windows.Forms. TextBox� class � With AutoComplete � Example
2 .............. 1116
�System.Windows.Forms. TextBox� class � With KeyPress �
Example ............................ 1120
�System.Windows.Forms. TextBox� class � With KeyPress � Example
2 ........................ 1124
�System.Windows.Forms. TextBox� class � With Enter and Leave �
Example ............... 1128
�System.Windows.Forms. TextBox� class � With TabIndex �
Example ........................... 1133
�System.Windows.Forms. TextBox� class � Math �
Example ............................................ 1137
�System.Windows.Forms. NumericUpDown�
class ............................................................. 1143
�System.Windows.Forms. NumericUpDown� class �
Example .......................................... 1147
�System.Windows.Forms. DateTimePicker�
class ............................................................... 1151
�System.Windows.Forms. DateTimePicker� class �
Example ............................................ 1155
�System.Windows.Forms. MonthCalendar�
class ................................................................ 1159
�System.Windows.Forms. MonthCalendar� class �
Example ............................................ 1163
�System.Windows.Forms. ToolTip�
class .............................................................................
. 1167
�System.Windows.Forms. ToolTip� class �
Example ........................................................... 1169
�System.Windows.Forms. ErrorProvider�
class ................................................................... 1173
�System.Windows.Forms. ErrorProvider� class �
Example ................................................ 1175
�System.Text. RegularExpressions. Regex�
class ................................................................ 1179
�System.Text. RegularExpressions. Regex� class �
Example ............................................. 1181
�System.Windows.Forms. MaskedTextBox�
class ............................................................... 1186
�System.Windows.Forms. MaskedTextBox� class -
Example ............................................ 1190
�System.Windows.Forms. CheckBox�
class ..........................................................................
1194
�System.Windows.Forms. CheckBox� class -
Example ....................................................... 1197
�System.Windows.Forms. RadioButton�
class ..................................................................... 1201
�System.Windows.Forms. RadioButton� class -
Example .................................................. 1204
�System.Windows.Forms. ComboBox�
class ........................................................................ 1209
�System.Windows.Forms. ComboBox� class -
Example ..................................................... 1212
�Cascading ComboBox� -
Example ...........................................................................
.............. 1216
�System.Windows.Forms. ListBox�
class .............................................................................
. 1221
�System.Windows.Forms. ListBox� class -
Example ............................................................ 1224
�System.Windows.Forms. CheckedListBox�
class ............................................................... 1228
�System.Windows.Forms. CheckedListBox� class �
Example ............................................ 1231
�System.Windows.Forms. TreeView�
class ...........................................................................
1235
�System.Windows.Forms. TreeView� class -
Example ........................................................ 1240
The �System.Windows.Forms. PictureBox�
class ................................................................ 1245
�System.Windows.Forms. PIctureBox� class -
Example ..................................................... 1248
�System.Windows.Forms. PIctureBox� class � Example
2 ................................................. 1251
The �System.Windows.Forms. Panel�
class ..........................................................................
1256
�System.Windows.Forms. Panel� class -
Example ............................................................... 1259
The �System.Windows.Forms. GroupBox�
class .................................................................. 1263
�System.Windows.Forms. GroupBox� class -
Example ....................................................... 1266
The �System.Windows.Forms. SplitContainer�
class .......................................................... 1270
�System.Windows.Forms. SplitContainer� class -
Example ............................................... 1273
The �System.Windows.Forms. TabControl�
class ................................................................ 1277
�System.Windows.Forms. TabControl� class -
Example ..................................................... 1280
The �System.Windows.Forms. FlowLayoutPanel�
class ..................................................... 1284
�System.Windows.Forms. FlowLayoutPanel� class -
Example .......................................... 1287
�System.Windows.Forms. LinkLabel�
class ...........................................................................
1291
�System.Windows.Forms. LinkLabel� class -
Example ........................................................ 1294
�System.Windows.Forms. WebBrowser�
class .................................................................... 1298
�System.Windows.Forms. WebBrowser� class -
Example .................................................. 1300
�System.Windows.Forms.Timer�
class .............................................................................
..... 1304
�System.Windows.Forms. Timer� class -
Example ............................................................... 1306
�System.Windows.Forms.Timer� class � with Time -
Example ......................................... 1310
�System.Windows.Forms.Timer� class � with Counter -
Example ................................... 1314
�System.Windows.Forms.Timer� class � with Slide Show -
Example ............................... 1318
�System.Windows.Forms. ProgressBar�
class ...................................................................... 1323
�System.Windows.Forms. ProgressBar� class -
Example ................................................... 1326
�System.Windows.Forms. NotifyIcon�
class .........................................................................
1330
�System.Windows.Forms. NotifyIcon� class -
Example ...................................................... 1333
Popup
Boxes .............................................................................
................................................. 1337
PopupBoxes -
Example ...........................................................................
................................. 1338
�System.Windows.Forms. ColorDialog�
class ...................................................................... 1346
�System.Windows.Forms. ColorDialog� class -
Example .................................................... 1348
�System.Windows.Forms. FontDialog�
class ........................................................................ 1353
�System.Windows.Forms. FontDialog� class -
Example ..................................................... 1355
�System.Windows.Forms. FolderBrowserDialog�
class ..................................................... 1359
�System.Windows.Forms. FolderBrowserDialog� class -
Example ................................... 1361
�System.Windows.Forms. OpenFileDialog�
class ................................................................ 1365
�System.Windows.Forms. OpenFileDialog� class -
Example ............................................. 1367
�System.Windows.Forms. SaveFileDialog�
class ................................................................. 1371
�System.Windows.Forms. SaveFileDialog� class -
Example ............................................... 1373
�System.Windows.Forms. MenuStrip�
class .........................................................................
1377
�System.Windows.Forms. MenuStrip� class -
Example ...................................................... 1382
�System.Windows.Forms. ContextMenuStrip�
class .......................................................... 1387
�System.Windows.Forms. ContextMenuStrip� class -
Example ........................................ 1390
�System.Windows.Forms. ToolStrip�
class ...........................................................................
1395
�System.Windows.Forms. ToolStrip� class -
Example ......................................................... 1400
�System.Windows.Forms. StatusStrip�
class ........................................................................ 1404
�System.Windows.Forms. StatusStrip� class -
Example ..................................................... 1409
�System.Windows.Forms. RichTextBox�
class ..................................................................... 1413
�System.Windows.Forms. RichTextBox� class -
Example ................................................... 1418
User Controls in
C#.NET ............................................................................
.............................. 1432
User Controls -
Example ...........................................................................
............................... 1433
Windows Forms Control
Library ...........................................................................
.................. 1439
Windows Forms Control Library -
Example ..........................................................................
1440
�System.Net.Mail.SmtpClient�
class .............................................................................
......... 1447
�System.Net.Mail.SmtpClient� class -
Example ................................................................... 1449
Multi-
Threading .........................................................................
............................................... 1455
Multi Threading -
Example ...........................................................................
........................... 1458
Task Parallel
Library ...........................................................................
...................................... 1462
Task Parallel Library -
Example ...........................................................................
.................... 1464
Windows Services in
C#.NET.............................................................................
...................... 1468
Windows Services -
Example ...........................................................................
........................ 1469
C#.NET � WinForms � System.IO Namespace .................................. 1474
The �System.IO.FileInfo� class -
Example ...........................................................................
.. 1475
The �System.IO.DirectoryInfo� class -
Example ................................................................... 1480
The �System.IO.Directory� class -
Example ..........................................................................
1486
The �System.IO.File� class -
Example ...........................................................................
.......... 1490
The �System.IO.StreamWriter� class -
Example................................................................... 1495
The �System.IO.StreamReader� class -
Example ................................................................. 1498
C#.NET � WinForms �
ADO.NET ...................................................................... 1502
SqlConnection � Windows Authentication �
Example ....................................................... 1503
SqlConnection � SQL Server Authentication �
Example .................................................... 1507
SqlCommand � ExecuteScalar �
Example ...........................................................................
.. 1511
SqlCommand � ExecuteScalar � Example
2 .......................................................................... 1515
ADO.NET Connection Oriented Model � Single Record �
Example ................................. 1519
ADO.NET Connection Oriented Model � Multiple Records �
Example ........................... 1524
ADO.NET Connection Oriented Model � Multiple Records - Label �
Example............... 1529
ADO.NET Connection Oriented Model � SqlParameter �
Example ................................. 1534
ADO.NET Connection Oriented Model � SqlParameter � ComboBox � Example ..........
1540
DataSet -
Example ...........................................................................
......................................... 1547
ADO.NET Disconnected Model �
Example ...........................................................................
1554
ADO.NET Disconnected Model � Multiple Tables -
Example ............................................ 1559
ADO.NET Disconnected Model � Joins -
Example ............................................................... 1567
ADO.NET Disconnected Model � Record Navigations -
Example ..................................... 1573
ADO.NET Disconnected Model � ComboBox -
Example .................................................... 1582
ADO.NET Disconnected Model � ComboBox - DataSource -
Example ............................ 1589
ADO.NET Disconnected Model � DataGridView -
Example ............................................... 1596
ADO.NET Disconnected Model � DataGridView - SqlCommandBuilder - Example .......
1600
ADO.NET Disconnected Model � Master � Child �
Example .............................................. 1605
ADO.NET Disconnected Model � Cascading ComboBox �
Example ................................ 1611
ADO.NET Non Query - Insertion �
Example .........................................................................
1618
ADO.NET Non Query - Updation �
Example .........................................................................
1622
ADO.NET Non Query - Deletion �
Example ..........................................................................
1626
ADO.NET Non Query � Insertion � With SqlParameter �
Example ................................... 1630
ADO.NET Non Query � Updation � With SqlParameter �
Example .................................. 1636
ADO.NET Non Query � Deletion � With SqlParameter �
Example ................................... 1642
ADO.NET Non Query � Insertion � With Stored Procedures �
Example .......................... 1647
ADO.NET Non Query � Updation � With Stored Procedures �
Example ......................... 1653
ADO.NET Non Query � Deletion � With Stored Procedures �
Example .......................... 1659
ADO.NET Disconnected Model � ComboBox � Stored Procedures � Example ..............
1664
ADO.NET Disconnected Model � Updation with ComboBox -
Example .......................... 1671
ADO.NET � CRUD (Create, Retrieve, Update, Delete) -
Example ..................................... 1679
ADO.NET � Registration Form -
Example ...........................................................................
.. 1694
ADO.NET � Login Form -
Example ...........................................................................
............... 1701
ADO.NET � Transactions -
Example ...........................................................................
............ 1709
ADO.NET � Oracle -
Example ...........................................................................
....................... 1714
ADO.NET � MS Access -
Example ...........................................................................
................ 1727
ADO.NET � MS Excel -
Example ...........................................................................
................... 1740
ADO.NET � SQL Server to Oracle -
Example.........................................................................
1750
ADO.NET � SQL Server to MS Excel -
Example .................................................................... 1758
ADO.NET � Oracle to SQL Server -
Example.........................................................................
1768
ADO.NET � Excel to SQL Server -
Example ...........................................................................
1776
ADO.NET � SQL Server to File -
Example ...........................................................................
... 1786
ADO.NET � File to SQL Server -
Example ...........................................................................
... 1792
ADO.NET � SqlCommandBuilder � DataSet � Insertion -
Example ................................... 1798
ADO.NET � SqlCommandBuilder � DataSet � Updation -
Example .................................. 1804
ADO.NET � SqlCommandBuilder � DataSet � Deletion -
Example ................................... 1810
N-Tier Architecture -
Example ...........................................................................
..................... 1815
LINQ to SQL -
Example ...........................................................................
.................................. 1825
C#.NET � WinForms � Entity Framework .............................................
1832
Entity Framework -
Example ...........................................................................
........................ 1833
Entity Framework � Insertion -
Example ...........................................................................
.... 1841
Entity Framework � Updation -
Example ...........................................................................
... 1848
Entity Framework � Deletion -
Example ...........................................................................
.... 1855
Part 1 - .NET - Fundamentals
Introduction to .NET
What is .NET?
� .NET is an �application development platform�, which is used to develop
applications.
� .NET is developed by Microsoft Corporation in 2002.
Parts of .NET
� .NET is mainly divided into 3 parts:
1. C#.NET (C Sharp .NET)
2. ASP.NET (Active Server Pages .NET)
3. ADO.NET (ActiveX Data Objects.NET)
1. C#.NET
� Covers language basics.
� It is used to develop �Stand-alone applications� that runs based on
the single machine.
� Ex: Calculator, Bill Generation Applications etc.
2. ASP.NET
� Convers server side programming.
� It is used to develop �Enterprise applications� that runs based on
�Client-server architecture�.
3. ADO.NET
� Convers database interaction.
� It is used to connect to databases in both �Stand-alone applications�
and also in �Client-server applications�.
Features of .NET
Features of .NET (or) Design Goals of .NET
1. Object Oriented
2. Many types of applications
3. Language Independency
4. Platform independency
1. Object Oriented:
. .NET is fully object oriented.
. It supports all the features of object oriented programming, such as �Re-
usability�, �security�, �classes�, �objects�, �encapsulation�, �hiding�,
�abstraction�, �inheritance�, �polymorphism� etc.
2. Many types of applications:
o Before .NET, we have to use different languages to develop different
types of applications (like console apps, windows apps, and web
apps).
o But in .net, using the same language, we can develop all types of
applications.
3. Language Independency:
. .NET is language independent.
. That means we can write .net programs in many .net languages. The
developers can choose any .net language, based on their interest and
knowledge. In all the .net languages, concepts are common but syntaxes
are different.
4. Platform independency:
. Platform independency means "ability of an application compiled in one
operating system can be run in other operating systems".
. .NET is �platform independent�, by using some third party tools such as
�Mono�, prior to .NET 4.6.
. From .NET 4.6 onwards, .NET is �platform independent� by using a built-
in tool called �.NET Core�. That means it supports many operating
systems, such as Windows, Linux, Mac, Android, iOS.
Java (vs) .NET
Differences between Java and .NET
Concept
Java
.NET
Language /
platform
Java is a language;
.NET is a �development platform�,
which is a collection of many languages
and frameworks.
Vendor
Java was developed by SUN
micro systems; recently it is
taken over by Oracle Corp.
.NET is developed by Microsoft Corp.
Language
independency
Java is a single language; it
doesn�t support multiple
languages.
.NET supports many languages.
Programming
concepts
Structures, partial classes,
properties etc., are not
supported by Java.
Structures, partial classes are
supported by .net.
Platform
independency
Java is fully platform
independent. That means Java
program works on any
operating system, like
Windows, Mac, Solaris, LINUX,
Android, iOS etc.
Prior to .NET 4.6, it was �platform
independent� with support of some
third party tools such as �Mono�.
From .NET 4.6 onwards, .NET is
�platform independent�, which
supports many operating systems such
as Windows, Mac, LINUX, Android and
iOS etc.
Versions of .NET
Versions of .NET
Sl.
No
.NET Framework
Year of
release
Concepts
.NET Framework 1.0
2002
Console Apps,
Basics,
OOP,
WinForms,
Web Forms,
ADO.NET
.NET Framework 1.1
2003
Bug fixes
.NET Framework 2.0
2005
Improved web controls,
Data controls, Themes and skins,
Master pages,
Partial classes, Nullable types,
Anonymous methods, Generics
4
.NET Framework 3.0
2006
WPF
WCF
.NET Framework 3.5
2007
LINQ
ASP.NET AJAX
.NET Framework 4.0
2010
ADO.NET Entity Framework
Task Parallel Library
ASP.NET Web Pages
ASP.NET MVC
.NET Framework 4.5
2012
Open Authentication
ASP.NET Web API
ASP.NET Bundles and Minification
.NET Framework 4.5.1
2013
Async and Await
.NET Framework 4.5.2
2014
Bug fixes
10
.NET Framework 4.6
2015
.NET Core (open-source and cross-platform).
ASP.NET Core
11
.NET Framework 4.6.1
2015
Bug fixes
12
.NET Framework 4.6.2
2016
Bug fixes
13
.NET Framework 4.7
2017
Improved Performance
.NET Framework (vs) Visual Studio
Types of software of .NET
� �.NET� is a �development platform�, which is provides two software:
1. .NET Framework
2. Visual Studio
1. .NET Framework:
� It is the �Software Development Kit (SDK)�, which provides many
components such as CIL, CLR, FCL, CLS, which is used to develop &
run the .net applications.
� It should be installed in both developer system and user system.
� When we install Visual Studio in the developer system, automatically
.NET Framework will be installed.
2. Visual Studio:
� It is the �code editor�, which is used to write .net programs
(applications).
� It should be installed only in the developer system.
Versions of Visual Studio
Versions of Visual Studio
Visual Studio Version
Year of
Release
Supported Operating Systems
Supported
.NET
Framework
Versions
Visual Studio 2002 (7.0)
2002
Windows 2000
Windows XP
.NET 1.0
Visual Studio 2003 (7.1)
2003
Windows 2000
Windows XP
.NET 1.1
Visual Studio 2005 (8.0)
2005
Windows 2000
Windows XP
.NET 2.0
Visual Studio 2008 (9.0)
2007
Windows 2000
Windows XP
Windows 7
.NET 2.0
.NET 3.0
.NET 3.5
Visual Studio 2010 (10.0)
2010
Windows XP + Service Pack 3
Windows 7
.NET 2.0
.NET 3.0
.NET 3.5
.NET 4.0
Visual Studio 2012 (11.0)
2012
Windows 7
Windows 8.1
Windows 10
.NET 2.0
.NET 3.0
.NET 3.5
.NET 4.0
.NET 4.5
Visual Studio 2013 (12.0)
2013
Windows 7 + Service Pack 1
Windows 8.1
Windows 10
.NET 2.0
.NET 3.0
.NET 3.5
.NET 4.0
.NET 4.5
.NET 4.5.1
Visual Studio 2015 (14.0)
2015
Windows 7 + Service Pack 1
Windows 8.1
Windows 10
.NET 2.0
.NET 3.0
.NET 3.5
.NET 4.0
.NET 4.5
.NET 4.5.1
.NET 4.5.2
.NET 4.6
.NET 4.6.1
.NET 4.6.2
Visual Studio 2017 (15.0)
2017
Windows 7 + Service Pack 1
Windows 8.1
Windows 10
.NET 2.0
.NET 3.0
.NET 3.5
.NET 4.0
.NET 4.5
.NET 4.5.1
.NET 4.5.2
.NET 4.6
.NET 4.6.1
.NET 4.6.2
.NET 4.7
System Requirements of Visual Studio 2015
System Requirements of Visual Studio 2015:
Software /
Hardware
Requirement
Minimum
Recommended
Processor
1.6 Ghz
2.3 Ghz or higher
RAM
1 GB
4 GB or higher
Hard disk free space
on C: drive
12 GB
15 GB or higher
Operating System
Windows 7 + Service Pack 1
Windows 8.1
Windows 10
Windows 10
Internet Explorer
Internet Explorer 10
Internet Explorer 11 or
above
System Requirements of .NET Framework
4.6
System Requirements of .NET Framework:
Software /
Hardware
Requirement
Minimum
Recommended
Processor
1.6 Ghz
2.3 Ghz or higher
RAM
1 GB
2 GB or higher
Hard disk free space
on C: drive
2 GB
4 GB or higher
Operating System
Windows 7 + Service Pack 1
Windows 8
Windows 8.1
Windows 10
Windows 10
Execution Model of .NET Program
.NET programs are compiled and executed as follows:
C:\Users\Harsha\OneDrive\C#.NET\9. .NET Program Execution Model\Compilation and
Execution Model of .NET 2.png
Steps:
1. Programmer: Writes a .net program in any .net language, such as C#.NET,
VB.NET or VC++.NET etc.
2. Programmer: Clicks on "Start" button in visual studio.
3. Visual Studio: Calls the respective language compiler. Every .net language
has its own compiler. Ex: C#.NET compiler is �csc�; VB.NET compiler is �vbc�.
For example, the programmer has written c#.net program; then it calls
"C#.NET Compiler".
4. Compiler: The compiler converts the program (source code) into "Microsoft
intermediate language" (MSIL). The compiler stores the MSIL code in a file
called �.EXE� file (Executable file).
5. Visual Studio: Visual Studio calls "CLR (Common Language Runtime)" and
gives MSIL code to it.
6. CLR: CLR converts the program from MSIL language to �native machine
language� (based on the current operating system).
7. Processor: Processor executes the native machine code.
. CIL or MSIL is the intermediate language, developed by Microsoft Corporation,
for .NET.
. The .net programs are converted into �MSIL language� first; and then converted
into �native machine language�.
. The MSIL code will be stored in "EXE" file. Ex: filename.exe. The �native
machine language� code will not be saved in any file, it directly runs.
. Once the code is converted into MSIL, it doesn't matter in which .net language
it is originally developed. So for all .net languages, we can have a common
runtime engine called "CLR".
CIL (or) MSIL
CIL (Common Intermediate Language)
[or]
MSIL (Microsoft Intermediate Language)
.NET Framework Architecture
.NET Framework Architecture
� �.NET framework� is a SDK (Software Development Kit), which is divided as
several components.
� �.NET Framework Architecture� explains the list of components of .NET
Framework, and how they are arranged internally.
Explanation:
� "Windows" operating system works based on "processor".
� "CLR" works based on "Windows Operating System".
� "BCL" works based on "CLR".
� "ADO.NET" works based on "BCL".
� "WinForms", "ASP.NET", and �Other Frameworks� work based on "ADO.NET"
and "BCL".
� "CLS" is created based on "WinForms", "ASP.NET" and �Other Frameworks�.
� "C#.NET", "VB.NET", "Other Languages" are developed based on "CLS".
� Finally, the programmers are writing the programs by using the languages
called �C#.NET, �VB.NET� etc.
. CLR stands for �Common Language Runtime�.
. CLR is the �Execution Engine� or �Execution Environment� of .NET.
. To run any type of .net program (app), CLR must be installed in the computer.
. CLR will be started automatically when the .net application execution starts.
CLR performs essential tasks internally, while running any .net application.
. Without CLR, we can�t run any .net program.
. CLR reads the �MSIL code� from the EXE file, converts the same into �native
machine code�, gives the same to the operating system and then operating
system executes the native machine code; then the user gets the output. So
CLR is helps the operating system while executing the .net program.
. CLR will be installed automatically as a part of �.NET Framework� software. CLR
must be installed in both developer�s machine and user�s machine.
. CLR has the following inner components (sub components).
CLR
CLR (Common Language Runtime)
Sub Components of CLR
1. Memory Manager: �Memory Manager� is a sub component in CLR, which
allocates memory (in RAM) for the variables and objects in the program.
2. Garbage Collector: �Garbage Collector� is a sub component in CLR, which
deletes the variables and objects that are created during the program,
automatically at the end of the program execution.
3. Class Loader: �Class Loader� is a sub component in CLR, which loads a class
on-demand. When we try to access a class in the program for the first time,
then the �Class Loader� searches for the class in the entire program, loads
the class into the memory, and it passes the class to JIT compiler. That
means if we don�t call a class, it will not be loaded into memory. This avoids
un-necessary loading of the classes, if we don�t require them. So it improves
performance.
4. JIT (Just-In-Time) Compiler: �JIT Compiler� is a sub component in CLR,
which converts the �MSIL code� into �native machine language� (based on
current operating system).
5. Thread Manager: �Thread Manager� is a sub component in CLR, which
manages the threads of the program. It gives necessary instructions to the
processor, which thread is to be executed when. A thread is a "part of the
program" or "background work".
6. Exception Manager: �Exception Manager� is a sub component in CLR, which
passes necessary instructions to the operating system, which code should be
executed when an exception (runtime error) occurs while executing the
program.
7. Security Manager: �Security Manager� is a sub component in CLR, which
takes care about different types of security in .net such as windows
authentication, forms authentication, open authentication etc.
C:\Users\Harsha\Dropbox\C#.NET\19. CLR\CLR Architecture.png
. �CLS� is the set of rules, based on which all .net languages (C#.NET, VB.NET,
VC++.NET etc.) are developed.
. The common rules are about literals, operators, identifiers, data types, type
conversion, object oriented programming etc.
CLS
CLS (Common Language Specification)
. �CTS� is a set common data types, based on which, the data types of all .net
languages (C#.NET, VB.NET, VC++.NET etc.) are developed.
. Thus, we achieve the uniform data types among all .net languages.
. The following is the list of data types of CTS:
1. SByte
2. Byte
3. Short
4. UShort
5. Int32
6. UInt32
7. Int64
8. UInt64
9. Single
10. Double
11. Decimal
12. Char
13. String
14. Boolean
15. DateTime
CTS
CTS (Common Type System)
. .NET provides a set of libraries, based on which we can develop .net
applications.
. FCL is divided into the following parts:
FCL
FCL (Framework Class Library)
1. BCL: BCL is a set of library files, which can be used in all types of
applications.
2. WinForms: This is a set of library files, which can be used only in windows
applications.
3. ASP.NET: This is a set of library files, which can be used only in web
applications.
4. ADO.NET: This is a set of library files, which can be used in all types of
applications for connecting to databases.
C#.NET � Language Fundamentals
Introduction to C#.NET
What is C#.NET:
C#.NET is the .NET�s most popular programming language, which is
used to create console, windows applications primarily. However, it can
be used in combination of ASP.NET, for development of web
applications.
� C#.NET is advanced than C, C++.
� C#.NET is an �Object Oriented Programming Language�.
� C#.NET is a case sensitive language.
� C#.NET is an advanced and matured language.
� C#.NET is a high-level programming language.
� C#.NET is a compiler-based language.
� C#.NET is a part of .NET Framework.
� C#.NET programs run based on the .NET run time environment.
Versions of C#.NET
Sl.
No
C#.NET
Version
.NET Framework Version
Year of
release
C#.NET 1.0
.NET Framework 1.0
2002
C#.NET 1.1
.NET Framework 1.1
2003
C#.NET 2.0
.NET Framework 2.0
2005
C#.NET 3.0
.NET Framework 3.0
2006
C#.NET 3.5
.NET Framework 3.5
2007
C#.NET 4.0
.NET Framework 4.0
2010
C#.NET 5.0
.NET Framework 4.5
2012
C#.NET 5.1
.NET Framework 4.5.1
2013
C#.NET 5.2
.NET Framework 4.5.2
2014
10
C#.NET 6.0
.NET Framework 4.6
2015
12
C#.NET 7.0
.NET Framework 4.6.2
2016
Project and Solution
Project
� Project is a folder, which is a �group of files�.
� A file contains code (program).
� When we compile the project, Visual Studio generates only one EXE file for
the entire project, which contains the compiled source code (in MSIL
language) of all the files of the same project.
Solution
� Solution is a folder, which is a �group of projects�.
File Types of .NET
File Types of .NET
� .NET supports the following file types:
File
Extension
Full form
Description
.cs
C# file
A C# file contains the C#.NET program
(source code).
.vb
VB file
A VB file contains the VB.NET program
(source code).
.csproj
C# Project
A project is a collection of files.
The project file contains the list of all the
files in the current project.
.sln
Solution
A solution is a collection of projects.
The solution file contains the list of all the
projects in the current solution.
.exe
Executable file
The EXE file contains the compiled source
code of a project. For every project, a
separate EXE file will be created.
.config
Configuration File
The configuration file contains the
configuration settings of a project.
Folder Structure of .NET Program
Folder Structure of .NET Program
� .NET program (project) should have the following folder structure.
� Every solution is a folder.
� Every project is folder.
Solution Folder
. Project Folder
o filename.cs
o App.config
o projectname.csproj
o bin\projectname.exe
. solutionname.sln
Tokens of C#.NET
Tokens of C#.NET
� In "C#.NET", we have to use the following tokens (parts of the language).
Sl.
No
Token
Description
Literals
Fixed values are literals.
� Integer literals: Any number without decimal part.
Ex: 10
� Floating-point literals: Any number with decimal
part. Ex: 10.87
� Character literals: Any single character in single
quotes. Ex: �A�.
The character can be alphabet, digit, space or special
symbol.
� String literals: Any one or more characters in double
quotes. Ex: �Abc 123$�
Operators
Any symbols such as +, -, *, /, %, =, == etc.
Keywords
void, if, switch, case, break, continue, goto, while, do, for,
return, int, float, double, decimal, string, throw, try, catch,
finally etc.
Identifiers
Any user-defined names: abc
Console Application Development in C#.NET
Console Application Development in C#.NET
� Console applications are the programs that run on �Command Prompt�
window.
� Console applications support CUI (Character User Interface).
� In console applications, all the input and output will be in the form of
characters only.
� Console applications are not user-friendly.
� Console applications are not used in real time, but good for learning
programming basics and OOP concepts.
Console Application Development
In C#.NET - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �Project1�.
� Type the location as �C:\CSharp�.
� Type the solution name as �Solution1�.
� Click on OK.
� It shows �Program.cs� file automatically.
� Type the following code for �Program.cs� file:
Program.cs
class Class1
static void Main()
System.Console.Write(10);
System.Console.Write(10.729);
System.Console.Write('A');
System.Console.Write("abc");
System.Console.Write(true);
System.Console.Write(false);
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
I/O Statements in C#.NET
List of I/O statements in C#.NET
� C#.NET provides the following statements for performing I/O operations in
console applications. That means we can show output to the user and accept
input from the user, using I/O statements.
1. System.Console.Write()
2. System.Console.WriteLine()
3. System.Console.ReadKey()
4. System.Console.ReadLine()
5. System.Console.Clear()
1. System.Console.Write()
� This statement is used to display the given value on the command prompt
window.
� After printing the value, the cursor will be kept in the same line.
� Syntax: System.Console.Write(value);
� Example: System.Console.Write(100);
2. System.Console.WriteLine()
� This statement is used to display the given value on the command prompt
window.
� After printing the value, the cursor will be automatically moved to the next
line.
� Syntax: System.Console.WriteLine(value);
� Example: System.Console.WriteLine(100);
3. System.Console.ReadKey()
� This statement is used to wait until the user presses any key on the
keyboard.
� Syntax: System.Console.ReadKey();
� Example: System.Console.ReadKey();
4. System.Console.ReadLine()
� This statement is used to accept a string value from keyboard.
� Syntax: System.Console.ReadLine();
� Example: System.Console.ReadLine();
5. System.Console.Clear()
� This statement is used to clear the screen.
� Syntax: System.Console.Clear();
� Example: System.Console.Clear();
System.Console.WriteLine � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �WriteLineExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �WriteLineExample�.
� Click on OK.
� It shows �Program.cs� file automatically.
� Type the following code for �Program.cs� file:
Program.cs
class Program
static void Main()
System.Console.WriteLine("Hello");
System.Console.WriteLine("Hello");
System.Console.WriteLine("Hello");
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
System.Console.ReadKey �
Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ReadKeyExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ReadKeyExample�.
� Click on OK.
� It shows �Program.cs� file automatically.
� Type the following code for �Program.cs� file:
Program.cs
class Program
static void Main()
//display message
System.Console.WriteLine("Hello");
//wait for pressing any key on the keyboard
System.Console.ReadKey();
//display message
System.Console.WriteLine("Hello");
//wait for pressing any key on the keyboard
System.Console.ReadKey();
//display message
System.Console.WriteLine("Hello");
//wait for pressing any key on the keyboard
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Press Enter.
Press Enter.
System.Console.Clear - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ClearExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ClearExample�.
� Click on OK.
� It shows �Program.cs� file automatically.
� Type the following code for �Program.cs� file:
Program.cs
class Program
static void Main()
//display message
System.Console.WriteLine("Hello");
//wait for pressing any key on the keyboard
System.Console.ReadKey();
//clear the screen
System.Console.Clear();
//display message
System.Console.WriteLine("how");
//wait for pressing any key on the keyboard
System.Console.ReadKey();
//clear the screen
System.Console.Clear();
//display message
System.Console.WriteLine("are you");
//wait for pressing any key on the keyboard
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Press Enter.
Press Enter.
Variables in C#.NET
Variables
� A variable is a named memory location in RAM, to store a particular type of
value temporarily while the program is running.
� All the variables stored in RAM (temporary memory).
� All the variables must be declared before its usage. While declaring
variables, data type is to be specified. Based on the data type, the amount
of memory to be allocated will be decided. Once a variable is declared, we
can�t change the �variable name� or �variable�s data type�.
� The variables memory will be allocated when the program execution starts;
and all the variables will be deleted (de-allocated) from memory
automatically, at the end of the program.
� A variable can store only one value. If you assign another value, the old value
will be overwritten.
� We can change the value of a variable any no. of times.
� Syntax to create a variable:
datatype variablename ;
� Syntax to set value into a variable:
variablename = value ;
� Syntax to get the value of a variable:
variablename
Variable Naming Rules
You must follow the below rules while giving name for variables.
� Variable names should not have spaces.
� Variable names should not have special characters except under score (_).
� Duplicate variable names not allowed in the method.
� Variable names can�t be same as keyword.
Variables - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �VariablesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �VariablesExample�.
� Click on OK.
� It shows �Program.cs� file automatically.
� Type the following code for �Program.cs� file:
Program.cs
class Program
static void Main()
//create a variable
int x;
//set value into the variable
x = 10;
//get the value of variable
System.Console.WriteLine(x);
//wait for pressing any key on the keyboard
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Data Types in C#.NET
Data Type
� A data type is a concept, which specifies the type of the data that is to be
stored in a variable.
Types of Data types
� Data types are two types:
I. Numerical data types
II. Non-numerical data types
Numerical Data Types in C#.NET
Numerical Data Types
Sl.
No
Data
Type
Description
No.
of
Bytes
Range
Suitable to
store
sbyte
8-bit signed
integer
1
byte
-128 to 127
Very small
positive or
negative
integers
byte
8-bit
unsigned
integer
1
byte
0 to 255
Very small
positive
integers
short
16-bit
signed
integer
2
bytes
-32,768 to 32,767
Small
positive or
negative
integers
ushort
16-bit
unsigned
integer
2
bytes
0 to 65,535
Small
positive
integers
int
32-bit
signed
integer
4
bytes
-2,147,483,648 to 2,147,483,647
Medium
positive or
negative
integers
uint
32-bit
unsigned
integer
4
bytes
0 to 4,294,967,295
Medium
positive
integers
long
64-bit
signed
integer
8
bytes
-9,223,372,036,854,775,808 to
9,223,372,036,854,770,000
Large
positive or
negative
integers
ulong
64-bit
unsigned
integer
8
bytes
0 to 18,446,744,073,709,551,615
Large
positive
integers
float
Signed
floating-
point
number
4
bytes
-3.402823E+38 to 3.402823E+38
(Precision: 7 digits)
Small
floating-
point
numbers
10
double
Signed
floating-
point
number
8
bytes
-1.79769313486232E+308 to
1.79769313486232E+308
(Precision: 15 digits)
Medium
floating-
point
numbers
11
decimal
Signed
floating-
point
number
16
bytes
-79228162514264337593543950335
to
79228162514264337593543950335
(Precision: 28 digits)
Large
floating-
point
numbers
Default Numerical data types
� C# compiler automatically treats a �number without decimal part� as �int�
data type, if it is within the maximum limit of �int� data type.
� C# compiler automatically treats a �number without decimal part� as �long�
data type, if it exceeds the limit of �int� data type.
� C# compiler automatically treats a number with decimal part as �double�
data type.
Numerical Data Types - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �NumericalDataTypesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �NumericalDataTypesExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create variables for all numerical data types
sbyte a = 10;
byte b = 20;
short c = 30;
ushort d = 40;
int e = 50;
uint f = 60;
long g = 70;
ulong h = 80;
float i = 90.23F;
double j = 100.23489;
decimal k = 110.882932M;
//displays the values of all variables
System.Console.WriteLine(a);
System.Console.WriteLine(b);
System.Console.WriteLine(c);
System.Console.WriteLine(d);
System.Console.WriteLine(e);
System.Console.WriteLine(f);
System.Console.WriteLine(g);
System.Console.WriteLine(h);
System.Console.WriteLine(i);
System.Console.WriteLine(j);
System.Console.WriteLine(k);
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
MinValue and MaxValue
NumericalDataType.MinValue
� This statement returns the minimum value of the specified numerical data
type.
� Syntax: datatype.MinValue
� Ex: int.MinValue
NumericalDataType.MaxValue
� This statement returns the maximum value of the specified numerical data
type.
� Syntax: datatype.MaxValue
� Ex: int.MaxValue
MinValue and MaxValue - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MinValueMaxValueExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MinValueMaxValueExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//get the minimum value of "int" data type
int min = int.MinValue;
//get the maximum value of "int" data type
int max = int.MaxValue;
//display the min and max values
System.Console.WriteLine(min);
System.Console.WriteLine(max);
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Non-Numerical Data Types in C#.NET
Non-Numerical Data Types
Sl.
No
Data
Type
Description
Value format
No. of Bytes
char
To store single
character
�character�
2 bytes
string
To store one or more
characters.
Max: 2 billion
characters
"string here"
No. of characters * 2
bool
To store true / false
values.
true or false
1 byte
DateTime
To store date and time
values.
M/d/yyyy hh:mi:ss:ms
8 bytes
char - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �charExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �charExample�.
� Click on OK.
� It shows �Program.cs� file automatically.
� Type the following code for �Program.cs� file:
Program.cs
class Program
static void Main()
//create variable of "char" data type
char ch = 'A';
//display the value of the variable
System.Console.WriteLine(ch);
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
String in C#.NET
String
� String: A string is a group of characters.
� String literal should be written inside the double quotes.
� All the names are strings. Ex: person names, city names, country names etc.
� String may contain alphabets, numbers, spaces and also special symbols.
� Alpha-numerical values are also treated as strings. Ex: car number, phone
number, bank ifsc codes etc.
� Syntax to create a string variable:
o string variablename = "value";
String - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �StringExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �StringExample�. Click on OK.
� It shows �Program.cs� file automatically.
� Type the following code for �Program.cs� file:
Program.cs
class Program
static void Main()
//create a variable
string s = "Hello 123 $#&";
//display the value of the variable
System.Console.WriteLine(s);
System.Console.WriteLine(s);
System.Console.WriteLine(s);
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Bool in C#.NET
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �boolExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �boolExample�.
� Click on OK.
� It shows �Program.cs� file automatically.
� Type the following code for �Program.cs� file:
Program.cs
class Program
static void Main()
//create variable of "bool" data type
bool b = true;
//display the value of the variable
System.Console.WriteLine(b);
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Operators in C#.NET
What is Operator:
� Operator is a symbol to perform an operation.
� An operator receives one or two operands and perform some operation &
returns the result.
� Types of operators:
1. Arithmetical Operators
2. Assignment Operators
3. Increment and Decrement Operators
4. Relational Operators
5. Logical Operators
6. Concatenation Operator
7. Conditional Operator
Arithmetical Operators in C#.NET
Arithmetical Operators
Sl. No
Operator
Description
Addition
Subtraction
Multiplication
Division
Remainder
Arithmetical Operators - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ArithmeticalOperatorsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ArithmeticalOperatorsExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create two variables of "double" data type
double a = 10, b = 3;
//addition
double c = a + b;
//subtraction
double d = a - b;
//multiplication
double e = a * b;
//division
double f = a / b;
//remainder
double g = a % b;
//display all the values
System.Console.WriteLine(a); //Output: 10
System.Console.WriteLine(b); //Output: 3
System.Console.WriteLine(c); //Output: 13
System.Console.WriteLine(d); //Output: 7
System.Console.WriteLine(e); //Output: 30
System.Console.WriteLine(f); //Output: 3.3333333333
System.Console.WriteLine(g); //Output: 1
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Assignment Operators in C#.NET
Assignment Operators
Sl. No
Operator
Description
Assigns to
+=
Add and assigns to
-=
Subtract and assigns to
*=
Multiply and assigns to
%=
Remainder and assigns to
Assignment Operators - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �AssignmentOperatorsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �AssignmentOperatorsExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create two variables of "int" data type
int a = 100;
int b;
//get the value from "a" and set the same into "b"
b = a;
//display the values of "a" and "b"
System.Console.WriteLine(a); //Output: 100
System.Console.WriteLine(b); //Output: 100
//a = a + 10
a += 10;
System.Console.WriteLine(a); //Output: 110
//a = a - 10
a -= 10;
System.Console.WriteLine(a); //Output: 100
//a = a * 3
a *= 3;
System.Console.WriteLine(a); //Output: 300
//a = a / 3
a /= 3;
System.Console.WriteLine(a); //Output: 100
//a = a % 30
a %= 30;
System.Console.WriteLine(a); //Output: 10
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Increment / Decrement Operators in C#.NET
Increment / Decrement Operators
Sl. No
Operator
Description
++
Increment
--
Decrement
Increment / Decrement Operators - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �IncDecOperatorsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �IncDecOperatorsExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create a variable of "int" data type
int n = 10;
//display the value of "n"
System.Console.WriteLine(n); //Output: 10
//n = n + 1
n++;
System.Console.WriteLine(n); //Output: 11
//n = n - 1
n--;
System.Console.WriteLine(n); //Output: 10
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Relational Operators in C#.NET
Relational Operators
Sl. No
Operator
Description
==
Equal to
!=
Not equal to
<
Less than
>
Greater than
<=
Less than or equal to
>=
Greater than or equal to
Relational Operators - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �RelationalOperatorsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �RelationalOperatorsExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create two variables of "long" data type
long x = 1000, y = 2000;
//check whether x and y are equal
bool b1 = (x == y);
//check whether x and y are not equal
bool b2 = (x != y);
//check whether x is less than y
bool b3 = (x < y);
//check whether x is greater than y
bool b4 = (x > y);
//check whether x is less than or equal to y
bool b5 = (x <= y);
//check whether x is greater than or equal to y
bool b6 = (x >= y);
System.Console.WriteLine(b1); //Output: false
System.Console.WriteLine(b2); //Output: true
System.Console.WriteLine(b3); //Output: true
System.Console.WriteLine(b4); //Output: false
System.Console.WriteLine(b5); //Output: true
System.Console.WriteLine(b6); //Output: false
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Logical Operators in C#.NET
Logical Operators
Sl. No
Operator
Description
&&
And (Both conditions must be true)
||
Or (Any one of the conditions must be true)
Not (Given condition will be reverse)
Logical Operators - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �LogicalOperatorsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �LogicalOperatorsExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create 3 variables of "int" data type
int a = 10, b = 20, c = 10;
//and
bool result1 = ((a == b) && (b > c));
System.Console.WriteLine(result1); //Output: false
//or
bool result2 = ((a == b) || (b > c));
System.Console.WriteLine(result2); //Output: true
//not
bool result3 = !(a == b);
System.Console.WriteLine(result3); //Output: true
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Concatenation Operator in C#.NET
Concatenation Operator
Sl. No
Operator
Description
Concatenation. It attaches two values and returns as a
string. The following cases, "+" operator is
"concatenation operator".
� String + String
� String + Number
� Number + String
Concatenation Operator - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ConcatenationOperatorExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ConcatenationOperatorExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create strings
string s1 = "peers";
string s2 = "tech";
string s3;
//concatenate s1 and s2 and store the result in s3
s3 = s1 + s2;
System.Console.WriteLine(s1); //Output: peers
System.Console.WriteLine(s2); //Output: tech
System.Console.WriteLine(s3); //Output: peeerstech
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Conditional Operator in C#.NET
Conditional Operator
Sl.
No
Operator
Description
(condition)? value1 : value2
Checks the given condition.
Returns the value1, if given condition is TRUE
Returns the value2, if the given condition is
FALSE.
Conditional Operator - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ConditionalOperatorExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ConditionalOperatorExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create a variable of "int" data type
int n = -100;
//check the condition; store "positive" if the condition is true; store
"negative" if the condition is false
string s = ( (n >= 0) ? "positive" : "negative");
System.Console.WriteLine(s); //Output: negative
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Control Statements in C#.NET
What are control statements?
� Control statements are used to control the �program execution flow�.
� That means these are used to �go forward� or �go backward� within the
program.
Types of control statements:
. Conditional Control Statements
� If
� Switch-case
. Looping Control Statements
� While
� Do-While
� For
. Jumping Control Statements
� Break
� Continue
� Goto
If in C#.NET
If
Sl.
No
Control
Statement
Syntax
Description
If
if (condition)
Your code here
It executes the �if block� only if the
given condition is TRUE.
It doesn�t execute anything if the
given condition is FALSE.
If-Else
if (condition)
Your code here
else
Your code here
It executes the �if block� if the
given condition is TRUE.
It executes the �else block� if the
given condition is FALSE.
3
Else-If
if (condition)
Your code here
else if (condition)
Your code here
else if (condition)
Your code here
else
Your code here
It executes the �if block�, if the
�first condition� is TRUE.
It executes the "first else if block",
if the second condition is TRUE.
It executes the "second else if
block", if the third condition is
TRUE.
It executes the �else block� if all
the conditions are FALSE.
4
Nested If
if (condition)
if (condition)
Your code here
else
Your code here
else
if (condition)
Your code here
else
Your code here
If inside another if.
If - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �IfExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �IfExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create variables
int n = 100;
//check whether n is equal to 100
if (n == 100)
System.Console.WriteLine("n is equal to 100");
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
If � Else - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �IfElseExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �IfElseExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create variables
int n = 150;
//check whether n is equal to 100
if (n == 100)
System.Console.WriteLine("n is equal to 100");
else
System.Console.WriteLine("n is not equal to 100");
System.Console.ReadKey();
}
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Else � If - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ElseIfExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ElseIfExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create variables
int a = 10, b = 20;
//check which is the big number
if (a == b)
System.Console.WriteLine("a and b are equal");
else if (a > b)
System.Console.WriteLine("a is bigger than b");
else
System.Console.WriteLine("b is bigger than a");
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Nested If - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �NestedIfExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �NestedIfExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create variables
int a = 150, b = 100;
string msg;
//outer if
if (a >= b)
//inner if
if (a > b)
msg = "a is greater than b";
//"else" for "inner if"
else
msg = "a is equal to b";
}
//"else" for "outer if"
else
msg = "a is less than b";
System.Console.WriteLine(msg); //Output: a is greater than b
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Switch � Case in C#.NET
Switch-case
Sl.
No
Control
Statement
Syntax
Description
Switch-
case
switch (variable)
case value1 : your code here ; break;
case value2 : your code here ; break;
default: your code here ; break;
It checks the
variable�s value
whether it matches
with which case &
executes the
corresponding code.
It executes the
default code if all
cases are not
matched.
Switch � Case - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �SwitchCaseExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �SwitchCaseExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create variables
int monthnumber = 7;
string monthname;
//check the value of monthnumber whether it matches with any one of
the following cases
switch (monthnumber)
case 1: monthname = "Jan"; break;
case 2: monthname = "Feb"; break;
case 3: monthname = "Mar"; break;
case 4: monthname = "Apr"; break;
case 5: monthname = "May"; break;
case 6: monthname = "Jun"; break;
case 7: monthname = "Jul"; break;
case 8: monthname = "Aug"; break;
case 9: monthname = "Sep"; break;
case 10: monthname = "Oct"; break;
case 11: monthname = "Nov"; break;
case 12: monthname = "Dec"; break;
default: monthname = "unknown"; break;
System.Console.WriteLine(monthname); //Output: Jul
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
While in C#.NET
while
Sl.
No
Control
Statement
Syntax
Description
While
while (condition)
your code here
It executes the code repeatedly, while
the condition is TRUE.
If exits from the loop automatically when
the condition is FALSE.
While - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �WhileExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �WhileExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//initialization
int i = 1;
//condition
while (i <= 10)
System.Console.WriteLine(i);
i++; //incrementation
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Do � While in C#.NET
do-while
Sl.
No
Control
Statement
Syntax
Description
Do-While
do
Your code here
} while( condition );
It repeats the code execution while the
condition is TRUE.
It executes the code at least once. That
means it will not check the condition for
the first iteration.
If exit from the loop automatically when
the condition is FALSE.
Do � While - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DoWhileExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DoWhileExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//initialization
int i = 1;
do
System.Console.WriteLine(i);
i++; //incrementation
} while (i <= 10); //condition
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
For in C#.NET
for
Sl.
No
Control
Statement
Syntax
Description
For
for (initialization ; condition ; iteration )
Your code here
Initialization,
condition, iteration
(increment or
decrement) are
written in a single
line; so that it is easy
to understand.
For - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ForExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ForExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//initialization; condition; incrementation
for (int i = 1; i <= 10; i++)
System.Console.WriteLine(i);
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Break in C#.NET
break
Sl.
No
Control
Statement
Syntax
Description
Break
break;
It terminates (stops) the loop.
Break - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �BreakExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �BreakExample�. Click on OK.
Program.cs
class Program
static void Main()
//initialization; condition; incrementation
for (int i = 1; i <= 10; i++)
System.Console.WriteLine(i);
if (i == 6)
break; //stop the loop when "i" value is reached to "6".
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Continue in C#.NET
continue
Sl.
No
Control
Statement
Syntax
Description
Continue
continue;
It skips the current iteration and jumps to the next
iteration.
Continue - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ContinueExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ContinueExample�. Click on OK.
Program.cs
class Program
static void Main()
//initialization; condition; incrementation
for (int i = 1; i <= 10; i++)
if (i == 6)
continue; //skip "6" and go to "7"
System.Console.WriteLine(i);
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Goto in C#.NET
goto
Sl.
No
Control
Statement
Syntax
Description
Goto
goto LabelName;
It jumps to the specified label, within the
same method.
Goto - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �GotoExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �GotoExample�.
� Click on OK.
Program.cs
class Program
static void Main()
System.Console.WriteLine("one");
System.Console.WriteLine("two");
//jump to mylabel
goto mylabel;
System.Console.WriteLine("three");
System.Console.WriteLine("four");
System.Console.WriteLine("five");
//mylabel starts here
mylabel:
System.Console.WriteLine("six");
System.Console.WriteLine("seven");
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Nested For Loops in C#.NET
Syntax of Nested For Loop
Description
for (initialization; condition; iteration)
for (initialization; condition; iteration)
Your code here
The �inner for loop� executes �n�
no. of times, while the condition
outer for loop�s condition is true.
Nested For Loops in C#.NET - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �NestedForLoopsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �NestedForLoopsExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//outer loop (5 times)
for (int i = 1; i <= 5; i++)
//inner loop (10 times)
for (int j = 1; j <= 10; j++)
System.Console.Write(j);
System.Console.Write(", ");
System.Console.WriteLine();
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Methods in C#.NET
Methods
. A method is a set of instructions (statements) to perform a particular task.
. A method is a �re-usable code block�.
. Methods are used to divide the large code as small units.
. Methods improve the understandability of the program.
. Every method should have a name.
. Methods can be called any no. of times.
. Methods can be created and called in any order.
. Arguments: The value that are passed from calling portion to the method
definition are called arguments or parameters. The data type of argument is
called �argument type�. Every argument can be different type.
. Return Value: The value that is passed from method definition to the
calling portion is called �return value�. A method can return only one value
maximum. The data type of return value is called �return type�. If a method
doesn�t return any value, its return type should be said as �void�.
. Method can be created inside the class only. A class is a collection of
methods. We will understand the �classes� deeply in later topics.
. �Static methods� (methods that are declared as �static�) can be called
without creating any object for the class. We will understand more about
"static" in the later chapters.
Syntax of creating a method
public static ReturnType Methodname (DataType1 ArgumentVariable1,
DataType2 ArgumentVariable2, �)
Your code here
return (value );
}
Methods � Simple Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MethodsSimpleExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MethodsSimpleExample�.
� Click on OK.
Program.cs
class Program
//create a method called "City" in "Program" class
static void City()
System.Console.WriteLine("Hyderabad");
static void Main()
//call "City" method of "Program" class
City();
//call "City" method of "Program" class
City();
//call "City" method of "Program" class
City();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Methods � Complex Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MethodsComplexExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MethodsComplexExample�.
� Click on OK.
Program.cs
class Program
//create a method called "City" in "Program" class
static void City()
//display message
System.Console.WriteLine("Hyderabad");
//call "Country" method from "City" method
Country();
//create a method called "Country" in "Program" class
static void Country()
//display message
System.Console.WriteLine("India");
}
static void Main()
System.Console.WriteLine("Message from Main");
//call "City" method of "Program" class
City();
//call "Country" method of "Program" class
Country();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Arguments and Return - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ArgumentsAndReturnExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ArgumentsAndReturnExample�.
� Click on OK.
Program.cs
class Program
//create a method called "Add".
public static int Add(int a, int b)
int c; //local variable
c = a + b;
return (c);
static void Main()
//call "Add" method
System.Console.WriteLine(Add(10, 20));
//call "Add" method
System.Console.WriteLine(Add(50, 30));
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Scope of Variables
Scopes of Variables
. �Life time� of the variable is called as �scope�.
. C#.NET supports three scopes:
1. Local variables:
. Declared inside a method.
. Accessible within the same method only.
2. Block level variables:
. Declared inside a block. Ex: if block, for block etc.
. Accessible within the same block only.
3. Class level variables:
. Declared inside a class.
. Accessible within all the methods of same class.
Default Arguments in C#.NET
Default Arguments (or) Optional Parameters
. �Default arguments� concept is used to specify a �default value� for a
�argument�.
. While calling the method, if you don�t supply a value for the parameter, then
the default value will be assigned to the parameter automatically.
. If you supply a value for the parameter, then the given value will be
assigned to the parameter, as usual.
Syntax of method with Default Arguments
public static MethodName (DataType1 ArgumentVariable1 = DefaultValue1,
DataType2 ArgumentVariable2 = DefaultValue2, �)
Your Code here
}
Default Arguments - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �DefaultArgumentsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DefaultArgumentsExample�.
� Click on OK.
Program.cs
class Program
public static void Display(int n = 10)
System.Console.WriteLine("n value is " + n);
static void Main()
Display(50); //Output: 50
Display(100); //Output: 100
Display(); //Output: 10
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Named Parameters in C#.NET
Named Parameters (or) Named Arguments
. �Named parameters� concept allows the programmer to pass a value, based
on the �parameter name�, instead of depending on the order of arguments,
while calling a method.
. Advantage: We can change the order of parameters.
. Syntax:
MethodName(ParameterName : value, ParameterName : value,
�)
Named Parameters - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �NamedParametersExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �NamedParametersExample�.
� Click on OK.
Program.cs
class Program
//Display method receives "x" and "y" values as arguments
public static void Display(int x, int y)
//display the value of "x"
System.Console.WriteLine("x is: " + x);
//display the value of "y"
System.Console.WriteLine("y is: " + y);
static void Main()
//call Display method. Pass "10" to "y" and "20" to "x"
Display(y: 10, x: 20); //Output: x is 20, y is 10
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Methods Overloading in C#.NET
Method Overloading
. �Method Overloading� concept is �writing multiple methods with same
name within the same class, with different types of arguments�.
. The difference can be in data types of arguments or in no. of arguments.
. When you call a method, it calls the method, which matches with the given
arguments.
. Example:
. Method1()
. Method1(int a)
. Method1(double d)
. Method1(int a, double d)
. Method1(double d, int a)
. Method1(string s)
etc.
Methods Overloading - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MethodOverloadingExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MethodOverloadingExample�.
� Click on OK.
Program.cs
class Program
//method 1
public static void Display(int n)
System.Console.WriteLine("int: " + n);
//method 2
public static void Display(string s)
System.Console.WriteLine("string: " + s);
static void Main()
int a = 100;
string b = "hello";
Display(a); //calls method1
Display(b); //calls method2
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Types of parameters in C#.NET
Types of Parameters
1. Call by value
2. Call by reference
3. Call by output
Call by Value
. The changes made to the �argument variable� will not be effected in
�original variable�.
. This is default in c#.net.
Call by Reference
. The changes made to the �argument variable� will be effected automatically
in the �original variable�.
. This is implemented using �ref� keyword with �original variable� and
�argument variable�.
. The �original variable� should be a variable (can�t be a literal).
Call by Output
. This is same as �call by reference�.
. The difference between �call by reference� and �call by output� is: the value
of �original variable� will not be transferred to the �argument variable�; but
the value comes back from �argument variable� to �original variable�, at the
end of method.
. The �argument variable� will be �unassigned� by default.
. The �argument variable� must be set to a value before the method
definition ends.
. This is implemented using �out� keyword in both calling portion and
receiving portion.
. The �original variable� should be a variable; can�t be a literal.
Call by value - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �CallByValueExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �CallByValueExample�.
� Click on OK.
Program.cs
class Program
//call by value
public static void Method1(int x)
System.Console.WriteLine(x); //Output: 100
x = 150;
System.Console.WriteLine(x); //Output: 150
static void Main()
int a = 100;
Method1(a);
System.Console.WriteLine(a); //Output: 100
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Call by reference - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �CallByReferenceExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �CallByReferenceExample�.
� Click on OK.
Program.cs
class Program
//call by value
public static void Method1(ref int x)
System.Console.WriteLine(x); //Output: 100
x = 150;
System.Console.WriteLine(x); //Output: 150
static void Main()
int a = 100;
Method1(ref a);
System.Console.WriteLine(a); //Output: 150
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Call by output - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �CallByOutExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �CallByOutExample�.
� Click on OK.
Program.cs
class Program
//call by value
public static void Method1(out int x)
x = 150;
System.Console.WriteLine(x); //Output: 150
static void Main()
int a;
Method1(out a);
System.Console.WriteLine(a); //Output: 150
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Type Conversion in C#.NET
Type Conversion in C#.NET
� The process of converting a value from �one data type� to �another data
type� is called as �type conversion�.
� C# supports 4 types of type conversion:
1. Implicit Casting
2. Explicit Casting (or) Type Casting
3. Parsing
4. Conversion Methods
Implicit Casting in C#.NET
Implicit Casting
� C# compiler automatically converts a value from �lower numeric data type�
to �higher numeric data type�. This automatic conversion is called �implicit
casting�.
� We will compare the no. of data types of the data type, to identify whether
it is a lower data type / higher data type.
� Ex: �int� to �long�. Here �int� is 4 bytes and �long� is 8 bytes. So it is
�lower�
to �higher�.
� As implicit casting will be performed automatically, there is no syntax for
this. Directly you can assign a value of �lower numeric data type� to �higher
numeric data type�.
Implicit Casting - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ImplicitCastingExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ImplicitCastingExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//A variable of "lower numerical data tye" i.e. "short" (2 bytes)
short a = 100;
//A variable of "higher numerical data tye" i.e. "int" (4 bytes)
int b;
//short to int = lower to higher = implicit casting
b = a;
System.Console.WriteLine(a); //Output: 100
System.Console.WriteLine(b); //Output: 100
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Explicit Casting (or) Type Casting in C#.NET
Explicit Casting (or) Type Casting
� It is used to convert a value from �lower numerical data type� to �higher
numerical data type� and also from �higher numerical data type� to �lower
numerical data type�.
� Syntax: (Expected data type)value
Explicit Casting (or) Type Casting - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �TypeCastingExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �TypeCastingExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create variable of "int" data type
int a = 100;
//create variable of "short" data type
short b;
//convert the value from "int" data type "short" data type (higher to
lower), using "type casting" concept
b = (short)a;
System.Console.WriteLine(a); //Output: 100
System.Console.WriteLine(b); //Output: 100
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Parsing in C#.NET
Parsing
. It is used to convert a value from �string� data type to �any numerical data
type�.
. �Parse� is a pre-defined method. Parsing means converting.
. Syntax: NumericalDataTypeName.Parse(value);
. Rule: The string value should contain digits only; otherwise it can�t be
converted into numerical data type.
. Note: If the string value is not convertible into �numerical data type�, you
will get exception (run time error).
Parsing - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ParsingExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ParsingExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create variable of "string" data type
string s = "100";
//create variable of "int" data type
int x;
//convert the value from "string" to "int" data type, using Parsing
concept
x = int.Parse(s);
System.Console.WriteLine(s); //Output: 100
System.Console.WriteLine(x); //Output: 100
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
TryParse in C#.NET
TryParse
. When you are converting "alphabets" or "alpha-numeric value" from "string"
data type to "numeric", you will get a run time error (exception).
. "TryParse" is a pre-defined method, which is used to avoid while converting
the value from "string" to "numerical data type".
. It tries to convert the string to numerical data type. If conversion is
successful, it returns "true". If conversion is failed, it returns "false". If
conversion is successful, it stores the result value in the destination variable;
otherwise, it stores 0 (zero) in the destination variable.
. Syntax: bool result = NumericalDataTypeName.TryParse(source
string value, out destination numerical variable);
TryParse - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �TryParseExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �TryParseExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create string & integer
string s = "1234";
int n;
//try to convert "1234" into "int" data type. If the conversion is
successful, it returns the value into the "out" parameter & "true" directly. If
the conversion is unsuccessful, it returns "false".
bool b = int.TryParse(s, out n);
//display
System.Console.WriteLine(n); //Output: 1234
System.Console.WriteLine(b); //Output: True
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
TryParse � Example 2
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �TryParseExample2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �TryParseExample2�.
� Click on OK.
Program.cs
class Program
static void Main()
//create string and integer
string s = "hyderabad1234";
int n;
//try to convert "hyderabad1234" into int data type. Actually it not
possible to convert "alphanumeric value" like "hyderabad1234" into "int"
data type. So it returns "0" into "n" and "false" into "b".
bool b = int.TryParse(s, out n);
System.Console.WriteLine(n); //Output: 0
System.Console.WriteLine(b); //Output: False
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Conversion Methods in C#.NET
Conversion Methods
. C#.NET provides a set of conversion methods, which are used to convert a
value from �any standard data type� to �any other standard data type�.
. Standard data types all numerical and non-numerical data types.
. Syntax: System.Convert.MethodName(value);
List of conversion methods
Sl.
No
Conversion Method
Description
byte System.Convert.ToByte(value)
It converts and returns the
given value into �byte� data
type.
sbyte System.Convert.ToSByte(value)
It converts and returns the
given value into �sbyte� data
type.
short System.Convert.ToInt16(value)
It converts and returns the
given value into �short� data
type.
ushort System.Convert.ToUInt16(value)
It converts and returns the
given value into �ushort� data
type.
int System.Convert.ToInt32(value)
It converts and returns the
given value into �int� data type.
uint System.Convert.ToUInt32(value)
It converts and returns the
given value into �uint� data
type.
long System.Convert.ToInt64(value)
It converts and returns the
given value into �long� data
type.
ulong System.Convert.ToUInt64(value)
It converts and returns the
given value into �ulong� data
type.
9
float System.Convert.ToSingle(value)
It converts and returns the
given value into �float� data
type.
10
double System.Convert.ToDouble(value)
It converts and returns the
given value into �double� data
type.
11
decimal System.Convert.ToDecimal(value)
It converts and returns the
given value into �decimal� data
type.
12
char System.Convert.ToChar(value)
It converts and returns the
given value into �char� data
type.
13
string System.Convert.ToString(value)
It converts and returns the
given value into �string� data
type.
14
bool System.Convert.ToBoolean (value)
It converts and returns the
given value into �bool� data
type.
15
DateTime
System.Convert.ToDateTime(value)
It converts and returns the
given value into �DateTime�
data type.
. Note: You have to use the conversion method, based on the destination
data type (target data type), into which you want to convert.
Conversion Methods - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ConversionMethodsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ConversionMethodsExample�.
� Click on OK.
Program.cs
class Program
static void Main()
//create a variable of "double" data type
double d = 100;
//create a variable of "int" data type
int n;
//convert the value from "double" data type to "int" data type", using
conversion method
n = System.Convert.ToInt32(d);
System.Console.WriteLine(d); //Output: 100
System.Console.WriteLine(n); //Output: 100
System.Console.ReadKey();
//Note: Try all the remaining conversion methods.
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
C#.NET � Object Oriented
Programming (OOP)
Introduction to Object Oriented
Programming in C#.NET
Introduction of Object Oriented Programming (OOP)
� �Object oriented programming� is a programming style / programming
paradigm, which provides necessary guidelines for the programmers to
write the programs in a well-organized, understandable, secured, re-usable,
efficient, structured, clean, maintainable manner.
� OOP is followed in almost-all modern programming languages such as C++,
VC++, Java, C#.NET, VB.NET etc.
� .NET developers must know OOP.
Objects in C#.NET
Object
� An object represents a real world item. For example, you are an object, your
laptop is an object, and your city is an object.
� An object consists of "details" and "functionality".
� Details are called as "data members" or "fields".
� Functionality is called as "functions" or "methods" or "operations".
� All the objects will be stored in an area called "heap" in RAM.
Data Members and Methods in C#.NET
Data Members
� Data members also called as "details" or "fields".
� The variables inside object are called as "data members".
� Data members are used to store data.
Methods
� Methods also called as "functionality" or "functions" or "operations".
� A method is a "set of statements" to do a particular task in the program.
� Methods are used to manipulate data members.
Example:
Classes in C#.NET
Class
� A class is a "model" or �type� or "blue-print" of object.
� Class is used to define the common members of similar objects.
. For example, there are 10 students. Each student is an object. So 10
students are 10 objects. In each student, we want to store
"studentid", "studentname", "marks". So first we have to create a
class called "Student" and we have to create "studentid",
"studentname", "marks" as members of the "Student" class. Then we
have to create objects based on the class.
� A class specifies the list of data members and methods that you want to
store in every object.
� For a class, memory will not be allocated.
� So you must create an object for the class, in order to access its members.
� Class is a just �model� only; no actual data will be stored in class. Object is
the �real instance�; actual data will be stored in object only.
� Based on a class, any no. of objects can be created.
� When an object is created, the following process happens.
1. Memory will be allocated in RAM (Random Access Memory) for the
object.
2. All the data members of the class will be stored in the object.
3. Data members of the object will be initialized with default values.
. Numerical data members: 0
. Char / string: null
. Bool: false
. DateTime: 1/1/0001 12:00:00 AM
4. Constructor will be called. Constructors will be explained later in this
book.
� All the objects are stored in RAM (temporarily). Objects are created when
the program execution starts. Objects are automatically deleted (erased
from memory) when the program execution ends.
� Each object�s memory will be allocated separately in RAM.
Example:
Reference variables
� A �reference variable� stores address of an object of same class.
� You should store the �address of an object� in the reference variable;
through the reference variable only, we can access the object, in further
statements.
� All reference variables will be stored in an area called "stack" in RAM.
Syntax of creating class
class Classname
Class members here
Syntax of creating a data member in a class:
accessmodifier qualifier datatype datamembername = value;
Syntax of creating a method in a class:
accessmodifier qualifier returntype methodname(arguments)
Code here
Syntax of creating reference
Classname Referencevariablename ;
Syntax of creating object (in heap):
new Classname ( );
Memory allocation of Objects
� All the reference variables are stored in an area called "stack" in RAM. For
every method call, a �stack� will be created automatically.
� All the objects are stored in an area called "heap" in RAM. For entire
application, a �heap� will be created.
� You must store the address of an object into the reference variable;
otherwise you can't access the object.
Object Oriented Programming � Simple
Example
Creating Project
� Open Visual Studio 2015. Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �OOPSimpleExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �OOPSimpleExample�.
� Click on OK.
Program.cs
//create a class called "myclass" with 2 data members called "a", "b"; but no
memory allocated as of now.
class myclass
public int a, b;
class Program
static void Main()
//create reference variable (in stack) of "myclass" type
myclass variable1;
//create object (in heap) of "myclass" type and store the object address
in the reference variable called "variable1"
variable1 = new myclass();
//set data into members of first object
variable1.a = 10;
variable1.b = 20;
//create another reference variable (in stack) of "myclass" type
myclass variable2;
//create another object (in heap) of "myclass" type and store the object
address in the reference variable called "variable2"
variable2 = new myclass();
//set data into members of second object
variable2.a = 30;
variable2.b = 40;
//get data from first object
System.Console.WriteLine(variable1.a);
System.Console.WriteLine(variable1.b);
System.Console.WriteLine("\n");
//get data from second object
System.Console.WriteLine(variable2.a);
System.Console.WriteLine(variable2.b);
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Object Oriented Programming � Advanced
Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �OOPAdvancedExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �OOPAdvancedExample�.
� Click on OK.
Program.cs
//create a class called "Person" with 2 data members called "name" and
"age"
class Person
//data members
public string name;
public int age;
class Program
static void Main()
//create 2 reference variables of "Person" type
Person p1, p2;
//create 2 objects of "Person" type
p1 = new Person();
p2 = new Person();
//set data into first object
p1.name = "Scott";
p1.age = 20;
//set data into second object
p2.name = "Allen";
p2.age = 25;
//get data from first object
System.Console.WriteLine("name: " + p1.name);
System.Console.WriteLine("age: " + p1.age);
System.Console.WriteLine("---------------------------------");
//get data from second object
System.Console.WriteLine("name: " + p2.name);
System.Console.WriteLine("age: " + p2.age);
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Console.ReadLine in C#.NET
Reading inputs from keyboard
� To read input values from the user at run time:
o Syntax: string System.Console.ReadLine( )
� It returns the value in �string� data type only. If you want other data types,
you have to use conversion methods.
Console.ReadLine - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ReadLineExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ReadLineExample�.
� Click on OK.
Program.cs
//create a class called "Student" with 3 data members called "studentId",
"studentname" and "marks"
class Student
//data members
public int studentId;
public string studentName;
public int marks;
class Program
static void Main()
//create 3 reference variables of "Student" type
Student s1, s2, s3;
//create 3 objects of "Student" type
s1 = new Student();
s2 = new Student();
s3 = new Student();
//set data into first object
System.Console.Write("Enter first student id: ");
s1.studentId = System.Convert.ToInt32(System.Console.ReadLine());
System.Console.Write("Enter first student name: ");
s1.studentName = System.Console.ReadLine();
System.Console.Write("Enter first student marks: ");
s1.marks = System.Convert.ToInt32(System.Console.ReadLine());
System.Console.WriteLine();
//set data into second object
System.Console.Write("Enter second student id: ");
s2.studentId = System.Convert.ToInt32(System.Console.ReadLine());
System.Console.Write("Enter second student name: ");
s2.studentName = System.Console.ReadLine();
System.Console.Write("Enter second student marks: ");
s2.marks = System.Convert.ToInt32(System.Console.ReadLine());
System.Console.WriteLine();
//set data into third object
System.Console.Write("Enter third student id: ");
s3.studentId = System.Convert.ToInt32(System.Console.ReadLine());
System.Console.Write("Enter third student name: ");
s3.studentName = System.Console.ReadLine();
System.Console.Write("Enter third student marks: ");
s3.marks = System.Convert.ToInt32(System.Console.ReadLine());
System.Console.WriteLine();
//get data from first object
System.Console.WriteLine("Student ID: " + s1.studentId);
System.Console.WriteLine("Student Name: " + s1.studentName);
System.Console.WriteLine("Marks: " + s1.marks);
System.Console.WriteLine("----------------------------------");
//get data from second object
System.Console.WriteLine("Student ID: " + s2.studentId);
System.Console.WriteLine("Student Name: " + s2.studentName);
System.Console.WriteLine("Marks: " + s2.marks);
System.Console.WriteLine("---------------------------------");
//get data from third object
System.Console.WriteLine("Student ID: " + s3.studentId);
System.Console.WriteLine("Student Name: " + s3.studentName);
System.Console.WriteLine("Marks: " + s3.marks);
System.Console.WriteLine("---------------------------------");
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Methods � Example 1 - Age
C:\Users\Harsha\AppData\Local\Microsoft\Windows\INetCacheContent.Word\Person.png
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MethodsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MethodsExample�.
� Click on OK.
Program.cs
class Person
public int age = 20;
//method definition
public void Birthday()
age++;
class Program
static void Main()
Person p;
p = new Person();
System.Console.WriteLine(p.age);
p.Birthday(); //method calling
System.Console.WriteLine(p.age);
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Methods � Example 2 - Numbers
C:\Users\Harsha\AppData\Local\Microsoft\Windows\INetCacheContent.Word\class
Class1.png
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MethodsExample2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MethodsExample2�. Click on OK.
Program.cs
//creating a class called "Class1"
class Class1
//"a" and "b" are used to store two numbers
public double a, b;
//"sum" is used to store the result of a+b
public double sum;
//"difference" is used to store the result of a-b
public double difference;
//"product" is used to store the result of a*b
public double product;
//"quotient" is used to store the result of a/b
public double quotient;
//Add method: stores the result of a + b into "sum"
public void Add()
{
sum = a + b;
}
//Subtract method: stores the result of a - b into "difference"
public void Subtract()
difference = a - b;
//Multiply method: stores the result of a * b into "product"
public void Multiply()
product = a * b;
//Divide method: stores the result of a / b into "quotient"
public void Divide()
quotient = a / b;
class Program
static void Main()
//create reference variable of "Class1" class
Class1 c1;
//create object of "Class1" class
c1 = new Class1();
//read "a" from keyboard
System.Console.Write("Enter first number : ");
c1.a = System.Convert.ToDouble(System.Console.ReadLine());
//read "b" from keyboard
System.Console.Write("Enter second number : ");
c1.b = System.Convert.ToDouble(System.Console.ReadLine());
//call Add method (it calculates a+b and stores the result in a data
member called "sum")
c1.Add();
//display the value of "sum"
System.Console.WriteLine("Sum: " + c1.sum);
//call Subtract method (it calculates a-b and stores the result in a data
member called "difference")
c1.Subtract();
//display the value of "difference"
System.Console.WriteLine("Difference: " + c1.difference);
//call Multiply method (it calculates a*b and stores the result in a data
member called "product")
c1.Multiply();
//display the value of "product"
System.Console.WriteLine("Product: " + c1.product);
//call Divide method (it calculates a/b and stores the result in a data
member called "quotient")
c1.Divide();
//display the value of "quotient"
System.Console.WriteLine("Quotient: " + c1.quotient);
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Methods � Example 3 - Login
C:\Users\Harsha\Dropbox\C#.NET\63. Login\class User.png
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �LoginExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �LoginExample�. Click on OK.
Program.cs
//create a class called "User"
class User
//"Username" is a data member to store username.
public string Username;
//"Password" is a data member to store password.
public string Password;
//"Message" is a data member to store message like "Successful login" or
"Invalid login".
public string Message;
//CheckLogin is a method that checks whether the username="admin"
and password="manager". If the conditions are matched, then it stores
"Successful login" in a data member called "Message"; otherwise it stores
"Invalid login".
public void CheckLogin()
if (Username == "admin" && Password == "manager")
{
Message = "Successful login";
else
Message = "Invalid login";
class Program
static void Main()
//create reference variable of User class
User u;
//create object of User class
u = new User();
//read username from keyboard
System.Console.Write("Enter username : ");
u.Username = System.Console.ReadLine();
//read password from keyboard
System.Console.Write("Enter password : ");
u.Password = System.Console.ReadLine();
//call method called CheckLogin. It checks the username and password
and stores the result in a data member called "u.Message".
u.CheckLogin();
//show message
System.Console.WriteLine(u.Message);
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Methods � Example 4 - Student
C:\Users\Harsha\AppData\Local\Microsoft\Windows\INetCacheContent.Word\Student -
Class and Objects.png
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �StudentExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �StudentExample�. Click on OK.
Program.cs
//create a class called "Student"
class Student
//data members
public int studentid;
public string studentname;
public double marks1, marks2, marks3, totalmarks, averagemarks;
public string grade;
//method "calculatetotalmarks" (calculates totalmarks)
public void calculatetotalmarks()
totalmarks = marks1 + marks2 + marks3;
//method "calculateaveragemarks" (calculates averagemarks)
public void calculateaveragemarks()
averagemarks = totalmarks / 3;
}
//method "calculategrade" (calculates grade)
public void calculategrade()
if (marks1 < 35 || marks2 < 35 || marks3 < 35)
grade = "Fail";
else if (averagemarks >= 80 && averagemarks <= 100)
grade = "A grade";
else if (averagemarks >= 60 && averagemarks < 79)
grade = "B grade";
else if (averagemarks >= 50 && averagemarks < 59)
grade = "C grade";
else if (averagemarks >= 35 && averagemarks < 49)
grade = "D grade";
class Program
static void Main()
//create 2 reference variables of "Student" type
Student s1, s2;
//create 2 objects of "Student" type
s1 = new Student();
s2 = new Student();
//set data into first object
System.Console.Write("Enter first student id: ");
s1.studentid = System.Convert.ToInt32(System.Console.ReadLine());
System.Console.Write("Enter first student name: ");
s1.studentname = System.Console.ReadLine();
System.Console.Write("Enter first student marks 1: ");
s1.marks1 = System.Convert.ToInt32(System.Console.ReadLine());
System.Console.Write("Enter first student marks 2: ");
s1.marks2 = System.Convert.ToInt32(System.Console.ReadLine());
System.Console.Write("Enter first student marks 3: ");
s1.marks3 = System.Convert.ToInt32(System.Console.ReadLine());
System.Console.WriteLine();
//set data into second object
System.Console.Write("Enter second student id: ");
s2.studentid = System.Convert.ToInt32(System.Console.ReadLine());
System.Console.Write("Enter second student name: ");
s2.studentname = System.Console.ReadLine();
System.Console.Write("Enter second student marks 1: ");
s2.marks1 = System.Convert.ToInt32(System.Console.ReadLine());
System.Console.Write("Enter second student marks 2: ");
s2.marks2 = System.Convert.ToInt32(System.Console.ReadLine());
System.Console.Write("Enter second student marks 3: ");
s2.marks3 = System.Convert.ToInt32(System.Console.ReadLine());
System.Console.WriteLine();
//call methods of first object
s1.calculatetotalmarks();
s1.calculateaveragemarks();
s1.calculategrade();
//call methods of second object
s2.calculatetotalmarks();
s2.calculateaveragemarks();
s2.calculategrade();
//get data from first object
System.Console.WriteLine("First Student ID: " + s1.studentid);
System.Console.WriteLine("First Student Name: " + s1.studentname);
System.Console.WriteLine("First Student Marks 1: " + s1.marks1);
System.Console.WriteLine("First Student Marks 2: " + s1.marks2);
System.Console.WriteLine("First Student Marks 3: " + s1.marks3);
System.Console.WriteLine("First Student Total Marks: " +
s1.totalmarks);
System.Console.WriteLine("First Student Average Marks: " +
s1.averagemarks);
System.Console.WriteLine("First Student Grade: " + s1.grade);
System.Console.WriteLine("---------------------------------");
//get data from second object
System.Console.WriteLine("Second Student ID: " + s2.studentid);
System.Console.WriteLine("Second Student Name: " +
s2.studentname);
System.Console.WriteLine("Second Student Marks 1: " + s2.marks1);
System.Console.WriteLine("Second Student Marks 2: " + s2.marks2);
System.Console.WriteLine("Second Student Marks 3: " + s2.marks3);
System.Console.WriteLine("Second Student Total Marks: " +
s2.totalmarks);
System.Console.WriteLine("Second Student Average Marks: " +
s2.averagemarks);
System.Console.WriteLine("Second Student Grade: " + s2.grade);
System.Console.WriteLine("---------------------------------");
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Constructors in C#.NET
Constructors
� Constructors are special methods of the class, which initializes the data
members and perform any initialization process, which will be called
automatically when an object is created for the class.
� Constructors are used to receive a set of parameters and initialize those
parameters into respective data members.
� For example, you have a class with data members. So your constructor can
receive 3 arguments and assign those arguments into data members
respectively. However, if you don�t want to initialize all the data members,
you can receive less no. of arguments also. For example, you can initialize 1
or 2 data members also.
� When an object is created, the following process happens internally:
o Memory will be allocated for the object in RAM (in Heap of RAM).
o Default values will be initialized (based on the data type).
o Constructor will be called automatically.
Syntax of Constructor
public Classname(datatype variable1, datatype variable2, �)
Datamember1 = variable1;
Datamember2 = variable2;
Types of Constructor
� Parameter-less constructor: A constructor that has no arguments. It
initializes data members with some fixed values.
� Parameterized constructor: A constructor that has one or more
arguments. It initializes data members with argument (varied) values.
Default Constructor
� As per the rules of c#.net, a class should have a constructor. If you don�t
create a constructor in the class, .net creates an empty constructor (implicit
constructor or default constructor) automatically and internally.
Parameterless Constructor - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ParameterlessConstructorExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ParameterlessConstructorExample�.
� Click on OK.
Program.cs
class Sample
//data members
public int a, b;
//constructor
public Sample()
a = 10;
b = 20;
class Program
static void Main()
//creating reference variable
Sample s;
//creating object
s = new Sample();
//get data
System.Console.WriteLine(s.a);
System.Console.WriteLine(s.b);
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Parameterized Constructor - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ParameterizedConstructorExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ParameterizedConstructorExample�.
� Click on OK.
Program.cs
class Sample
//data members
public int a, b;
//constructor
public Sample(int x, int y)
a = x;
b = y;
class Program
static void Main()
//creating reference variable
Sample s1, s2;
//creating objects
s1 = new Sample(10, 20);
s2 = new Sample(60, 70);
//get data
System.Console.WriteLine("s1.a is " + s1.a);
System.Console.WriteLine("s1.b is " + s1.b);
System.Console.WriteLine("s2.a is " + s2.a);
System.Console.WriteLine("s2.b is " + s2.b);
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Constructors - Student - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ConstructorsStudentExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ConstructorsStudentExample�.
� Click on OK.
Program.cs
//create a class called "Student" with 3 data members called "studentid",
"studentname" and "marks"
class Student
//data members
public int studentid;
public string studentname;
public int marks;
//constructor (to receive parameters & initialize them into respetive data
members)
public Student(int a, string b, int c)
studentid = a;
studentname = b;
marks = c;
}
class Program
static void Main()
//create 3 reference variables of "Student" type
Student s1, s2, s3;
//create 3 objects of "Student" type
s1 = new Student(101, "Scott", 70);
s2 = new Student(102, "Allen", 80);
s3 = new Student(103, "John", 90);
//get data from first object
System.Console.WriteLine("First student:");
System.Console.WriteLine("Student ID: " + s1.studentid);
System.Console.WriteLine("Student Name: " + s1.studentname);
System.Console.WriteLine("Marks: " + s1.marks);
System.Console.WriteLine("----------------------------------");
//get data from second object
System.Console.WriteLine("Second student:");
System.Console.WriteLine("Student ID: " + s2.studentid);
System.Console.WriteLine("Student Name: " + s2.studentname);
System.Console.WriteLine("Marks: " + s2.marks);
System.Console.WriteLine("---------------------------------");
//get data from third object
System.Console.WriteLine("Third student:");
System.Console.WriteLine("Student ID: " + s3.studentid);
System.Console.WriteLine("Student Name: " + s3.studentname);
System.Console.WriteLine("Marks: " + s3.marks);
System.Console.WriteLine("---------------------------------");
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Object Initializer in C#.NET
Object Initializer
� Drawback of constructor: Once we have created a constructor with some
set of arguments, every time we call it, you must pass the same no. of
values; we can't initialize desired data members; so there is no flexibility in
the constructor.
� Object initializer solves the above problem.
� �Object initializer� is a syntax, which is used to initialize �desired� data
members.
� "Object initializer" concept introduced in c#.net 3.0.
� "Object initializer" will be called after constructor.
� Syntax of creating object based on a class using Object
Initializer:
{ DataMember1 = Value1, DataMember2 = Value2, � };
� When an object is created, the following process happens
internally:
o First, necessary memory will be allocated for the object in RAM.
o Default values will be initialized into the data members.
o Next, constructor will be called automatically.
o Next, object initializer will be called automatically.
Object Initializer - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ObjectInitializerExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ObjectInitializerExample�.
� Click on OK.
Program.cs
//create a class called "Student" with 3 data members called "studentid",
"studentname" and "marks"
class Student
//data members
public int studentid;
public string studentname;
public int marks;
class Program
static void Main()
//create 3 reference variables of "Student" type
Student s1, s2, s3;
//create 3 objects of "Student" type
s1 = new Student() { studentid = 101, studentname = "Scott", marks = 70 };
s2 = new Student() { studentid = 102, studentname = "Allen", marks = 80 };
s3 = new Student() { studentid = 103, studentname = "John", marks = 90 };
//get data from first object
System.Console.WriteLine("First student:");
System.Console.WriteLine("Student ID: " + s1.studentid);
System.Console.WriteLine("Student Name: " + s1.studentname);
System.Console.WriteLine("Marks: " + s1.marks);
System.Console.WriteLine("----------------------------------");
//get data from second object
System.Console.WriteLine("Second student:");
System.Console.WriteLine("Student ID: " + s2.studentid);
System.Console.WriteLine("Student Name: " + s2.studentname);
System.Console.WriteLine("Marks: " + s2.marks);
System.Console.WriteLine("----------------------------------");
//get data from third object
System.Console.WriteLine("Third student:");
System.Console.WriteLine("Student ID: " + s3.studentid);
System.Console.WriteLine("Student Name: " + s3.studentname);
System.Console.WriteLine("Marks: " + s3.marks);
System.Console.WriteLine("----------------------------------");
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
"this" keyword in C#.NET
this keyword
� �this� is a keyword, which represents �current object�, based on which, the
method or constructor was called.
� �this� keyword can be used in non-static methods and non-static
constructors only. �this� keyword can�t be used in static methods or static
constructors.
� It is used to access the members of current object.
� By default, the usage of �this� keyword is optional. By default system
referrers to �current object�. But when a local variable name and data
member name are same, then by default the system refers to local variable.
Then if you want to access data member name, you must use
�this.datamember�. So in that way �this� keyword is must to use.
C:\Users\Harsha\Dropbox\C#.NET\65. This\this.png
"this" keyword - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ThisExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ThisExample�. Click on OK.
Program.cs
//create a class called "Class1"
class Class1
//"n" is a data member that stores a number
public int n;
//"Display" method
public void Display()
//"n" is a local variable
int n = 50;
//Note: Here the local variable "n" and data member "n" having same
name. In this situation, by default "n" refers to "local variable" and "this.n"
refers to "data member".
//this = current object
//this.n = data member
System.Console.WriteLine("data member: " + this.n);
System.Console.WriteLine("local variable: " + n);
System.Console.WriteLine();
}
class Program
static void Main()
//create two reference variables of "Class1" type
Class1 c1, c2;
//create first object
c1 = new Class1();
//create second object
c2 = new Class1();
//set value into c1.n and c2.n
c1.n = 100;
c2.n = 200;
c1.Display(); //"this" means first object
c2.Display(); //"this" means second object
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
"Set" and "Get" Methods in C#.NET
Set Method and Get Method
� �Set methods� and �get methods� are used to perform �validation� on a
private data member.
� You must create the data member as �private data member�, for security.
Set Method
� Set method receives a value as argument, checks (validates) it, and then
assigns the same into the data member.
� Set method protects the data member from invalid values.
� Set method acts as mediator between Main method and data member.
� Set method is used to perform validations and makes the program stronger
and systematic.
� Note: When set method is created, it is recommended to make the data
member as �private�. The private members are accessible only within the
same class.
� Syntax of Set Method:
public void SetDatamembername(Datatype Argument)
Datamember = Argument;
}
Get Method
� Get method returns the value of a data member.
� Get method can perform automatic calculations.
� Syntax of Get Method:
public Returntype GetDatamembername( )
return (Datamember);
}
"Set" and "Get" Methods - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �SetAndGetMethodsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �SetAndGetMethodsExample�.
� Click on OK.
Program.cs
//create a class called "Person"
class Person
//data member
public int age;
//set method
public void SetAge(int value)
if (value >= 18 && value <= 60)
age = value;
//get method
public int GetAge()
{
return (age);
class Program
static void Main()
Person p = new Person();
p.SetAge(70);
System.Console.WriteLine(p.GetAge());
p.SetAge(24);
System.Console.WriteLine(p.GetAge());
p.SetAge(240);
System.Console.WriteLine(p.GetAge());
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Properties in C#.NET
Properties
� A property is a group of �set method� and �get method�, which perform
validation on a private data member.
� Properties are used to implement a protection layer around data member.
� Properties can't store any value.
� Properties are used for validations and automatic calculations. The �set
method� is used to create validations; and �get method� is used to create
automatic calculations or return the value of a data member as it is.
� Properties offer simple way to call �set method� and �get method�.
� In real time, for every private data member, we create a property. That
means the private data member is not accessible directly in the client code;
though property it can be accessible indirectly.
� The property�s set method will be called automatically when a value is
assigned to a property.
� The property�s set method has an implicit argument called �value� that
represents the value assigned to the property.
� The property�s get method will be called automatically when the client code
gets the value of the property.
� The property�s get method has no arguments but should return the value.
� Note: While creating properties, it is recommended to create data member
name start with �_� (underscore). The underscore has no meaning, but it
indicates that it is data member.
Syntax to create a property:
public Datatype Propertyname
set
Datamember = value;
get
return (Datamember);
}
Properties - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �PropertiesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �PropertiesExample�.
� Click on OK.
Program.cs
//create a class called "Person"
class Person
//private data member
private int _age;
//property (set + get)
public int Age
set
if (value >= 18 && value <= 60)
_age = value;
get
{
return _age;
class Program
static void Main()
Person p = new Person();
p.Age = 70;
System.Console.WriteLine(p.Age);
p.Age = 24;
System.Console.WriteLine(p.Age);
p.Age = 240;
System.Console.WriteLine(p.Age);
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Readonly and WriteOnly Properties in
C#.NET
Read-only properties
� Read-only properties contain only get method; no set method.
� The user can get the value of read-only property, but can�t set the value.
� Syntax to create a readonly property:
public Datatype Propertyname
get
return (Datamember);
Write-only properties
� Write-only properties contain only set method; no get method.
� The user can set the value of write-only property, but can�t get
the value.
� Syntax to create a write-only property:
public Datatype Propertyname
set
Datamember = value;
}
Readonly Properties - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ReadOnlyPropertiesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ReadOnlyPropertiesExample�.
� Click on OK.
Program.cs
class Student
//private data members
public int _marks;
public string _result;
//properties
public int Marks
set
if (value >= 0 && value <= 100)
_marks = value;
get
return (_marks);
}
}
//readonly property (only get method)
public string Result
get
if (_marks < 35)
_result = "Fail";
else
_result = "Pass";
return _result;
class Program
static void Main()
Student s = new Student();
s.Marks = 70;
System.Console.WriteLine(s.Result);
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Automatic Properties in C#.NET
Automatic properties
� Automatic properties are created using { get; set; } syntax.
� When you create automatic property, the compiler automatically creates
the following things automatically at compilation time:
o Private data member
o Set method
o Get method
� Advantage of automatic properties: Easy syntax to create simple
properties.
� But automatic properties are useful only when you don�t want to perform
any validation. If you want to perform validation, use normal properties.
� Syntax:
public Datatype Propertyname { get; set; }
Automatic Properties - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.5�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �AutomaticPropertiesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �AutomaticPropertiesExample�.
� Click on OK.
Program.cs
class Person
//automatic properties
public string PersonName { get; set; }
public int Age { get; set; }
class Program
static void Main()
Person p = new Person();
p.PersonName = "Scott";
p.Age = 22;
System.Console.WriteLine(p.PersonName);
System.Console.WriteLine(p.Age);
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Objects as Arguments in C#.NET
Objects as Arguments
� We can pass objects as arguments from one method to another method.
Then the reference (address) of the source object will be sent to the
argument variable.
Objects as Arguments - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ObjectsAsArgumentsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ObjectsAsArgumentsExample�.
� Click on OK.
Program.cs
class Person
public int age;
class Sample
public void Birthday(Person p)
p.age++;
class Program
static void Main()
Person p;
p = new Person();
Sample s;
s = new Sample();
p.age = 20;
s.Birthday(p);
System.Console.WriteLine(p.age);
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Multiple Objects as Arguments in C#.NET
Multiple Objects as Arguments
� We can pass multiple objects as arguments from one method to another
method. Then the references of the source objects will be sent to the
respective argument variables.
Multiple Objects as Arguments - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MultipleObjectsAsArgumentsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MultipleObjectsAsArgumentsExample�.
� Click on OK.
Program.cs
//class
class Student
public int studentid;
public string studentname;
public int marks;
//create a class called "Class1"
class Class1
//create a method called "mymethod" in "Class1" that receives two
objects of "Student" class into "studentvariable1" and "studentvariable2"
arguments respectively
public void mymethod(Student studentvariable1, Student
studentvariable2)
//display the details of studentvariable1
System.Console.WriteLine("First Student details are: ");
System.Console.WriteLine("Student ID: " + studentvariable1.studentid);
System.Console.WriteLine("Student Name: " +
studentvariable1.studentname);
System.Console.WriteLine("Marks: " + studentvariable1.marks);
System.Console.WriteLine();
//display the details of studentvariable2
System.Console.WriteLine("Second Student details are: ");
System.Console.WriteLine("Student ID: " + studentvariable2.studentid);
System.Console.WriteLine("Student Name: " +
studentvariable2.studentname);
System.Console.WriteLine("Marks: " + studentvariable2.marks);
class Program
static void Main()
//create two reference variables of Student type
Student s1, s2;
//create two objects of Student type
s1 = new Student();
s2 = new Student();
//set data into the members of "studentvariable1"
s1.studentid = 1;
s1.studentname = "scott";
s1.marks = 80;
//set data into the members of "studentvariable2"
s2.studentid = 2;
s2.studentname = "allen";
s2.marks = 70;
//create a reference variable of Class1 type
Class1 c1;
//create an object of Class1 type
c1 = new Class1();
//call mymethod of Class1 and pass studentvariable1 and
studentvariable2. That method receives both objects and display them.
c1.mymethod(s1, s2);
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Objects as Data Members in C#.NET
Objects as Data Members
� We can create an object of one class (source class) and store its reference in
a data member of another class (destination class).
� If you do so, we can access the source class�s object, through the data
member of destination class. Then the data type of the data member should
be �source class� type.
� For example, assume you have a class called �Hyderabad�. You can create an
object for �Hyderabad� class and store its reference in a data member called
�h� in another class called �India�.
Objects as Data Members - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ObjectsAsDataMembersExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ObjectsAsDataMembersExample�.
� Click on OK.
Program.cs
//create a class called "Hyderabad" with 2 data members called
"Charminar" and "Golconda"
class Hyderabad
public string Charminar = "Hyderabad.Charminar";
public string Golconda = "Hyderabad.Golconda";
//create a class called "India"
class India
//create an object of "Hyderabad" and store its reference in a data
member of "India" class
public Hyderabad h = new Hyderabad();
class Program
{
static void Main()
//create a reference variable of India type
India i;
//create an object of India type
i = new India();
//get the members of "Hyderabad" class, through "India" class
System.Console.WriteLine(i.h.Charminar);
System.Console.WriteLine(i.h.Golconda);
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Inheritance in C#.NET
What is Inheritance
� It is a OOP concept of creating �parent-child� relationship among
two or more classes.
� It is a concept of extending an existing class, by creating another
class based on the existing class.
� Here, the classes are two types: parent class and child class.
� Child class extends the parent class.
� Parent class also called as �base class� or �super class�.
� Child class also called as �derived class� or �sub class�.
� As a result of inheritance, all the members of parent class will
become as members of child class automatically.
� When an object of child class is created, it creates an object of
parent class internally, and it will be part of the child class�s
object.
� One parent class can have one or more child classes; but one
child class can have ONLY ONE parent class.
� If you create a new child class based on an existing child class, all
its members and also its parent class members will be inherited
into the new child class.
� Syntax of inheritance:
class Childclassname : Parentclassname
}
Inheritance - Example
Creating Project
� Open Visual Studio 2015. Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �InheritanceExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �InheritanceExample�.
� Click on OK.
Program.cs
//parent class
class Class1
public int a = 10;
public int b = 20;
//child class
class Class2 : Class1
public int c = 30;
public int d = 40;
class Program
static void Main()
//create a reference variable for child class (Class2)
Class2 p;
//create object for child class (Class2); It internally creates an object for
parent class also. That means it allocates memory for "a", "b", "c" and "d".
p = new Class2();
//child class data members
System.Console.WriteLine("c: " + p.c);
System.Console.WriteLine("d: " + p.d);
//parent class data members
System.Console.WriteLine("a: " + p.a);
System.Console.WriteLine("b: " + p.b);
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Inheritance � Example 2
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �InheritanceExample2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �InheritanceExample2�.
� Click on OK.
Program.cs
//parent class
class Person
public string PersonName;
public string Gender;
//child class 1
class Student : Person
public int StudentID;
public int Marks;
//child class 2
class Employee : Person
public int EmpID;
public double Salary;
}
class Program
static void Main()
/******* creating object for parent class ********/
Person p;
p = new Person();
p.PersonName = "Scott";
p.Gender = "Male";
System.Console.WriteLine("Person Name: " + p.PersonName);
System.Console.WriteLine("Gender: " + p.Gender);
System.Console.WriteLine("\n");
/******** creating object for child class 1 ********/
Student s;
s = new Student();
s.PersonName = "Allen";
s.Gender = "Male";
s.StudentID = 101;
s.Marks = 70;
System.Console.WriteLine("Student Name: " + s.PersonName);
System.Console.WriteLine("Gender: " + s.Gender);
System.Console.WriteLine("Student ID: " + s.StudentID);
System.Console.WriteLine("Student Marks: " + s.Marks);
System.Console.WriteLine("\n");
/******** creating object for child class 2 *********/
Employee emp;
emp = new Employee();
emp.PersonName = "Jones";
emp.Gender = "Male";
emp.EmpID = 201;
emp.Salary = 7000;
System.Console.WriteLine("Employee Name: " + emp.PersonName);
System.Console.WriteLine("Gender: " + emp.Gender);
System.Console.WriteLine("Employee ID: " + emp.EmpID);
System.Console.WriteLine("Employee Salary: " + emp.Salary);
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�base� keyword in C#.NET
Calling the parent class�s member from child class�s
method:
� To access the members of parent class within the child class�s method:
o Syntax: base.parentclassmembername
� Note: Here, �base� is a keyword that represents the �object of parent class�,
which is a part of �object of child class�.
�base� keyword - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �BaseExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �BaseExample�.
� Click on OK.
Program.cs
//parent class
class Person
public string PersonName;
public string Gender;
//child class 1
class Student : Person
public int StudentID;
public int Marks;
//Student.DisplayStudentDetails
public void DisplayStudentDetails()
System.Console.WriteLine("Student Name: " + base.PersonName);
System.Console.WriteLine("Gender: " + base.Gender);
System.Console.WriteLine("Student ID: " + this.StudentID);
System.Console.WriteLine("Student Marks: " + this.Marks);
}
//child class 2
class Employee : Person
public int EmpID;
public double Salary;
//Employee.DisplayEmployeeDetails
public void DisplayEmployeeDetails()
System.Console.WriteLine("Employee Name: " + base.PersonName);
System.Console.WriteLine("Gender: " + base.Gender);
System.Console.WriteLine("Employee ID: " + this.EmpID);
System.Console.WriteLine("Employee Salary: " + this.Salary);
class Program
static void Main()
/********* creating object for child class 1 *************/
Student s;
s = new Student();
s.PersonName = "Allen";
s.Gender = "Male";
s.StudentID = 101;
s.Marks = 70;
s.DisplayStudentDetails();
System.Console.WriteLine("\n");
/********* creating object for child class 2 *************/
Employee emp;
emp = new Employee();
emp.PersonName = "Jones";
emp.Gender = "Male";
emp.EmpID = 201;
emp.Salary = 7000;
emp.DisplayEmployeeDetails();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Parent class�s constructor in C#.NET
Calling the parent class�s constructor from child class�s
constructor:
� The parent class�s parameterless constructor will be called automatically,
when child class�s constructor was called. But you must call the parent
class�s parameterized constructor explicitly in the child class�s constructor.
� In the child class�s constructor, you can use the following syntax to call the
parent class�s parameterized constructor:
o base(parameter1, parameter2, �)
Parent class�s constructor - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ParentClassConstructorExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ParentClassConstructorExample�.
� Click on OK.
Program.cs
//parent class
class Person
public string PersonName;
public string Gender;
//parent class constructor
public Person(string PersonName, string Gender)
this.PersonName = PersonName;
this.Gender = Gender;
//child class 1
class Student : Person
public int StudentID;
public int Marks;
//child class's constructor
//We are receiving 4 values; First two values will be forwarded to the
parent class constructor; Remaining two values will be stored in the child
class's object.
public Student(string PersonName, string Gender, int StudentID, int
Marks) : base(PersonName, Gender)
this.StudentID = StudentID;
this.Marks = Marks;
//Student.DisplayStudentDetails
public void DisplayStudentDetails()
System.Console.WriteLine("Student Name: " + base.PersonName);
System.Console.WriteLine("Gender: " + base.Gender);
System.Console.WriteLine("Student ID: " + this.StudentID);
System.Console.WriteLine("Student Marks: " + this.Marks);
//child class 2
class Employee : Person
public int EmpID;
public double Salary;
//child class's constructor
//We are receiving 4 values; First two values will be forwarded to the
parent class constructor; Remaining two values will be stored in the child
class's object.
public Employee(string PersonName, string Gender, int EmpID, int
Salary) : base(PersonName, Gender)
{
this.EmpID = EmpID;
this.Salary = Salary;
//Employee.DisplayEmployeeDetails
public void DisplayEmployeeDetails()
System.Console.WriteLine("Employee Name: " + base.PersonName);
System.Console.WriteLine("Gender: " + base.Gender);
System.Console.WriteLine("Employee ID: " + this.EmpID);
System.Console.WriteLine("Employee Salary: " + this.Salary);
class Program
static void Main()
/********* creating object for child class 1 *************/
Student s;
s = new Student("Allen", "Male", 101, 70);
s.DisplayStudentDetails();
System.Console.WriteLine("\n");
/********* creating object for child class 2 *************/
Employee emp;
emp = new Employee("Jones", "Male", 201, 7000);
emp.DisplayEmployeeDetails();
System.Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Method Hiding in C#.NET
Method Hiding
� �Method hiding� is used to hide the parent class�s method, by creating
another method in the child class, with same signature (access modifier,
method name and arguments).
� For method hiding, we need not use any special keyword in the parent
class�s method. But we have to use �new� keyword in the child class�s
method optionally. The �new� keyword specifies the compiler that we are
doing the �method hiding� intentionally.
Syntax to create normal method (in parent class):
public Returntype Methodname(Datatype1 Argument1, DataType2
Argument2, �)
Code here
Syntax to create hiding method (in child class):
public new Returntype Methodname (Datatype1 Argument1,
DataType2 Argument2, �)
Code here
}
Method Hiding - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MethodHidingExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MethodHidingExample�.
� Click on OK.
Program.cs
//parent class
class Class1
//Class1.Display
public void Display()
System.Console.WriteLine("Class1.Display");
//child class
class Class2 : Class1
//Class2.Display
//Method hiding: This method hides the parent class's method called
"Display". Both methods are having the same signature; but code is
different. Note: The "new" keyword is optional here.
public new void Display()
{
System.Console.WriteLine("Class2.Display");
class Program
static void Main()
Class2 c2;
c2 = new Class2();
c2.Display(); //calls Class2.Display only
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Method Hiding � Example 2
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MethodHidingExample2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MethodHidingExample2�.
� Click on OK.
Program.cs
//parent class
class Person
//data members of "Person" class
public string PersonName;
public string Gender;
//Person.Display
public void Display()
System.Console.WriteLine("Person Name: " + PersonName);
System.Console.WriteLine("Gender: " + Gender);
//child class 1
class Student : Person
public int StudentID;
public int Marks;
//Student.Display
//Method Hiding: This method hides the parent class's method called
"Display". Both methods are having the same signature; but code is
different.
public new void Display()
System.Console.WriteLine("Student Name: " + PersonName);
System.Console.WriteLine("Gender: " + Gender);
System.Console.WriteLine("Student ID: " + StudentID);
System.Console.WriteLine("Student Marks: " + Marks);
//child class 2
class Employee : Person
public int EmpID;
public double Salary;
//Employee.Display
//Method Hiding: This method hides the parent class's method called
"Display". Both methods are having the same signature; but code is
different.
public new void Display()
System.Console.WriteLine("Employee Name: " + PersonName);
System.Console.WriteLine("Gender: " + Gender);
System.Console.WriteLine("Employee ID: " + EmpID);
System.Console.WriteLine("Employee Salary: " + Salary);
class Program
{
static void Main()
/********* creating object for child class 1 *************/
Student s;
s = new Student();
s.PersonName = "Allen";
s.Gender = "Male";
s.StudentID = 101;
s.Marks = 70;
s.Display(); //calls Student.Display only
System.Console.WriteLine();
/********* creating object for child class 2 *************/
Employee emp;
emp = new Employee();
emp.PersonName = "Jones";
emp.Gender = "Male";
emp.EmpID = 201;
emp.Salary = 7000;
emp.Display(); //calls Employee.Display only
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Method Overriding in C#.NET
Virtual Methods and Method Overriding
� �Method Overriding� is a concept of �extending a parent class�s method�, by
creating another method in the child class, with same name and same
signature.
� The parent class�s method should be �virtual method�. The child class�s
method should be �override method�.
� The �virtual� keyword in parent class�s method allows the child classes to
override (redefine) the parent class�s method in the child classes.
� The �override� keyword in child class�s method informs the parent class that
it is overriding the parent class�s virtual method.
� The virtual methods only can be overridden.
� The method signature (method name, access modifier, arguments, and
return type) should be same in between virtual method and override
method.
� Virtual methods can�t be private.
� Overriding the virtual methods is optional.
� In real time, we use �method overriding� to extend an existing method,
which is created by another programmer.
Normal Methods (vs) Virtual Methods
Sl. No
Normal Method
Virtual Method
No "virtual" keyword
Should have "virtual" keyword.
Present in any class (parent class
or in child class).
Should be present in parent class
only.
Method Hiding (vs) Method Overrinding
� "Method Hiding" is similar to "Method Overriding", but having the following
differences.
Sl.
No
Method Hiding
Method Overriding
We need not use any keyword in
parent class method; "new" keyword
in child class method.
We should use "virtual" keyword in
parent class method; "override"
keyword in child class method.
Method hiding is used to hide
(overwrite) the parent class�s method.
That means parent class�s method will
not execute; only child class�s method
executes.
Method overriding is used to extend
the parent class�s method. That
means both parent class�s method
and child class�s method execute.
Syntax to create virtual method (in parent class):
public virtual Returntype Methodname (Datatype1 Argument1,
DataType2 Argument2, �)
Code here
Syntax to create override method (in child class):
public override Returntype Methodname (Datatype1 Argument1,
DataType2 Argument2, �)
{
Code here
}
Method Overriding - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MethodOverridingExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MethodOverridingExample�.
� Click on OK.
Program.cs
//parent class
class Class1
//Class1.Display (virtual method)
public virtual void Display()
System.Console.WriteLine("Class1.Display");
//child class
class Class2 : Class1
//Class2.Display
//Method overriding: This method overrides (extends) the parent class's
virtual method called "Display". That means both methods will execute.
Both methods should have same signature.
public override void Display()
{
base.Display();
System.Console.WriteLine("Class2.Display");
class Program
static void Main()
Class2 myobject;
myobject = new Class2();
//call the both methods Class1.Display and Class2.Display
myobject.Display();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Method Overriding � Example 2
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MethodOverridingExample2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MethodOverridingExample2�.
� Click on OK.
Program.cs
//parent class
class Person
public string PersonName;
public string Gender;
//Person.Display (virtual method)
public virtual void Display()
System.Console.WriteLine("Person Name: " + PersonName);
System.Console.WriteLine("Gender: " + Gender);
//child class 1
class Student : Person
public int StudentID;
public int Marks;
//Student.Display
//Method overriding: This method overrides (extends) the parent class's
virtual method called "Display". Both methods will execute. Both methods
should have same signature.
public override void Display()
base.Display();
System.Console.WriteLine("Student ID: " + StudentID);
System.Console.WriteLine("Student Marks: " + Marks);
//child class 2
class Employee : Person
public int EmpID;
public double Salary;
//Employee.Display
//Method overriding: This method overrides (extends) the parent class's
virtual method called "Display". Both methods will execute. Both methods
should have same signature.
public override void Display()
base.Display();
System.Console.WriteLine("Employee ID: " + EmpID);
System.Console.WriteLine("Employee Salary: " + Salary);
class Program
static void Main()
{
/********* creating object for child class 1 *************/
Student s;
s = new Student();
s.PersonName = "Allen";
s.Gender = "Male";
s.StudentID = 101;
s.Marks = 70;
s.Display(); //calls to Person.Display and Employee.Display
System.Console.WriteLine("\n");
/********* creating object for child class 2 *************/
Employee emp;
emp = new Employee();
emp.PersonName = "Jones";
emp.Gender = "Male";
emp.EmpID = 201;
emp.Salary = 7000;
emp.Display(); //calls to Person.Display and Student.Display
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Abstract Classes in C#.NET
Abstract Classes
� Abstract classes are similar to normal classes and can contain abstract
members additionally, and those can�t be instantiated.
� Abstract classes are created using �abstract� keyword
� Abstract classes contain a set of members that are common to all of its child
classes.
� Abstract classes can be inherited. That means we can create a child class
based on the abstract class.
� We can�t create object for the abstract class directly. The only way to utilize
its members is �creating object for child class and calling abstract class�s
members through the child class�s object�.
� Syntax to create an abstract class:
abstract class Classname
Normal Class (vs) Abstract Class
Sl.
No
Normal Class
(or) Non-abstract class
Abstract class
No "abstract" keyword
Should have "abstract" keyword.
We can create an object for normal
class.
We can't create an object for abstract
class; but we can create a reference
variable.
Normal class can't contain abstract
methods.
Abstract class can contain abstract
methods.
Abstract Classes - Example
Creating Project
� Open Visual Studio 2015. Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �AbstractClassesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �AbstractClassesExample�. Click on OK.
Program.cs
//parent class (abstract class)
abstract class Person
//normal method in abstract class
public void Display()
System.Console.WriteLine("Person.Display");
//child class 1
class Student : Person
//child class 2
class Employee : Person
class Program
{
static void Main()
/************* creating object for child class 1 *********/
Student s;
s = new Student();
s.Display();
System.Console.WriteLine("\n");
/************* creating object for child class 1 **********/
Employee emp;
emp = new Employee();
emp.Display();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Abstract Classes � Example 2
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �AbstractClassesExample2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �AbstractClassesExample2�.
� Click on OK.
Program.cs
//parent class (abstract class)
abstract class Person
public string PersonName;
public string Gender;
//normal method in abstract class
public void Display()
System.Console.WriteLine("Person name: " + this.PersonName);
System.Console.WriteLine("Gender: " + this.Gender);
//child class 1
class Student : Person
public int StudentID;
public int Marks;
}
//child class 2
class Employee : Person
public int EmpID;
public double Salary;
class Program
static void Main()
/************* creating object for child class 1 ********************/
Student s;
s = new Student();
s.PersonName = "Allen";
s.Gender = "Male";
s.StudentID = 101;
s.Marks = 70;
s.Display();
System.Console.WriteLine("Student ID: " + s.StudentID);
System.Console.WriteLine("Marks: " + s.Marks);
System.Console.WriteLine("\n");
/************* creating object for child class 2 ********************/
Employee emp;
emp = new Employee();
emp.PersonName = "Jones";
emp.Gender = "Male";
emp.EmpID = 201;
emp.Salary = 7000;
emp.Display();
System.Console.WriteLine("Employee ID: " + emp.EmpID);
System.Console.WriteLine("Salary: " + emp.Salary);
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Abstract Methods in C#.NET
Abstract Methods
� Abstract methods are �declaration-only� method that are declared in the
abstract class (parent class) and must be implemented (overridden) in the
child class(es).
� Abstract methods can be created only within the abstract class.
� Abstract methods contain only declaration (signature or prototype).
� Signature = Method name, return type, arguments and access modifier.
� Abstract methods should be overridden in the child class, using �override�
keyword.
� In real time, abstract class with abstract method(s) will be created by one
programmer and its child class(es) will be created by another programmer.
� Assume that there are two programmers. The first programmer is creating
parent class (cum abstract class); the second programmer is creating child
class. But both are present in two different components (parts) of the
project. So whenever the first programmer can�t write the actual code for a
method in the parent class and wants to let the second programmer two
write actual code for the method, then he will create an abstract method in
the parent class. So the first programmer writes method signature only; but
not the method definition. Then the second programmer has to create a
child class, based on the existing parent class. Then the second programmer
must create method definition. This work is called as �method overriding
with abstract methods�.
� Note: �Method overriding of virtual methods� is optional; but �method
overriding of abstract methods� is must.
� Virtual methods contain method body also. Abstract methods contain
signature only, no method body.
Normal Method (vs) Abstract Method
Sl.
No
Normal method
(or) Non-abstract method
Abstract method
No "abstract" keyword
Should have "abstract" keyword.
We can call the normal method.
We can't call the abstract method.
Normal methods can be created in
both normal class and also in
abstract class.
Abstract methods can be created in
only abstract class.
Normal methods contain method
signature and body.
Abstract methods contain only
method signature; no method body.
Normal methods can be present in
both parent class and also in the
child class.
Abstract methods can be present only
in the parent class.
Normal methods can be 'private'.
Abstract methods can't be 'private'.
Virtual Method (vs) Abstract Method
Sl.
No
Virtual method
Abstract method
Should have "virtual" keyword.
Should have "abstract" keyword.
We can call the virtual method.
We can't call the abstract method.
Virtual methods can be created in
both normal class and also in
abstract class.
Abstract methods can be created in
only abstract class.
Virtual methods contain method
signature and body.
Abstract methods contain only
method signature; no method body.
Overriding the virtual methods is
optional.
Overriding the abstract methods is
must.
� Syntax to create abstract method (in parent class):
public abstract Returntype Methodname(Datatype1
Argument1, DataType2 Argument2, �);
� Syntax to create override method (in child class):
public override Returntype Methodname(Datatype1
Argument1, DataType2 Argument2, �)
Code here
}
Abstract Methods - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �AbstractMethodsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �AbstractMethodsExample�.
� Click on OK.
Program.cs
//parent class (abstract class)
abstract class Class1
//abstract method in parent class. Abstract method doesn't contain
method body. It contains only signature.
public abstract void Display();
//child class
class Class2 : Class1
//Class2.Display
//Method overriding: This method overrides the parent class's abstract
method called "Display". Both methods are having the same signature.
public override void Display()
System.Console.WriteLine("Class2.Display");
}
}
class Program
static void Main()
Class2 c2;
c2 = new Class2();
c2.Display();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Abstract Methods � Example 2
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �AbstractMethodsExample2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �AbstractMethodsExample2�.
� Click on OK.
Program.cs
//parent class (abstract class)
abstract class Person
public string PersonName;
public string Gender;
//abstract method in parent class. Abstract method doesn't contain
method body. It contains only method signature.
public abstract void Display();
//child class 1
class Student : Person
public int StudentID;
public int Marks;
//Student.Display
//Method Overriding: This method overrides the parent class's abstract
method called "Display". Both methods are having the same signature.
public override void Display()
System.Console.WriteLine("Student Name: " + base.PersonName);
System.Console.WriteLine("Gender: " + base.Gender);
System.Console.WriteLine("Student ID: " + this.StudentID);
System.Console.WriteLine("Student Marks: " + this.Marks);
//child class 2
class Employee : Person
public int EmpID;
public double Salary;
//Employee.Display
//Method overriding: This method overrides the parent class's abstract
method called "Display". Both methods are having the same signature.
public override void Display()
System.Console.WriteLine("Employee Name: " + base.PersonName);
System.Console.WriteLine("Gender: " + base.Gender);
System.Console.WriteLine("Employee ID: " + this.EmpID);
System.Console.WriteLine("Employee Salary: " + this.Salary);
class Program
{
static void Main()
/*********** creating object for child class 1 *****************/
Student s;
s = new Student();
s.PersonName = "Allen";
s.Gender = "Male";
s.StudentID = 101;
s.Marks = 70;
s.Display();
System.Console.WriteLine("\n");
/*********** creating object for child class 2 *****************/
Employee emp;
emp = new Employee();
emp.PersonName = "Jones";
emp.Gender = "Male";
emp.EmpID = 201;
emp.Salary = 7000;
emp.Display();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Interfaces in C#.NET
Interfaces
� Interfaces are similar to abstract classes, but interfaces contain only
abstract methods and property declarations.
� We can�t create other members such as data members, normal methods,
constructors, properties etc., in interface.
� It is recommended to start the name of the interface with �I�.
� We can�t create an object for the interface, but we can create one or more
child classes for interface.
� Interface provides a list of abstract methods that should be overridden in
the child classes. By default, all the interface methods �public� and
�abstract� automatically.
� All the child classes that inherits (implements) the interface should
implement (override) all the interface methods. But different child classes
can implement the interface methods with different code. If you don�t
implement (override) any of the interface methods in the child class, you will
get compile-time error.
� Real-time use of interface: Interface acts as �contract� or �bridge�
between two parts of a project. Assume that there are two programmers
that create two different components of the project. The interface acts as
bridge between both the programmers. This situation occurs in advanced
.net frameworks such as WPF, MVC etc.
o The first programmer creates an interface; then creates an interface
variable and calls the method, without knowing its implementation.
o The second programmer creates a child class for the interface and
implements all of its methods, without knowing its calling.
Abstract Class (vs) Interface
Sl.
No
Abstract Class
Interface
Abstract class can contain all types
of members such as data members,
methods, properties, constructors
etc. & also abstract methods.
Can have only abstract methods &
property declarations.
A child class can�t inherit multiple
abstract classes.
A child class can inherit (implement)
multiple interfaces
Abstract class can�t act as a
mediator between two classes.
Interface act as a mediator between
two classes.
In one class, we will implement in the
interface. In the other class, we will
create a reference variable for the
interface & call the methods.
Use abstract class, if you want to
provide a list of non-abstract
methods and abstract methods to
the child classes.
Use interface, if you want to provide
only a list of abstract methods to the
child classes.
5
Use abstract class, if you want to
create a �partial generic type�.
Ex: �Vehicle� is an abstract class,
which provides common methods
to all of its child classes such as
�Car�, �Bike�, and �Bus� etc.
Here the �Vehicle� class contains
both non-abstract (normal)
methods and also abstract
methods.
Use interface, if you want to create
pure �generic type�.
Ex: �IHolidayTrip� is an interface, which
provides common abstract methods to
all of its child classes such as
�FamilyHolidayTrip�,
�CollegeHolidayTrip� and
�CompanyHolidayTrip�.
If �CompanyHolidayTrip� is an abstract
(parent) class, �TCSHolidayTrip�,
�WiproHolidayTrip� etc., are the child
classes.
Observation:
� �IHolidayTrip� is pure general-
purpose. It doesn�t matter,
whether it is college holiday trip
or company holiday trip. It just
provides a list of common
methods of all types of holiday
trips.
� �CompanyHolidayTrip� is partial
general-purpose. It provides the
list of methods that are
common for all company
holiday trips; but it doesn�t
matter which company holiday
trip it is.
� Syntax to create an interface:
interface Interfacename
Declare interface methods here
� Syntax to create a child class for the interface:
class Classname : Interfacename
Implement all the interface methods here
}
Interfaces - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �InterfacesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �InterfacesExample�.
� Click on OK.
Program.cs
//interface
interface Interface1
//abstract methods
void Display();
//child class
class Class1 : Interface1
//Method Overriding: This method overrides (implements) the
"Interface1.Display" method. Both methods are having the same signature.
public void Display()
System.Console.WriteLine("Class1.Display");
}
class Program
static void Main()
Class1 p;
p = new Class1();
p.Display();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Interfaces � Example 2
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �InterfacesExample2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �InterfacesExample2�.
� Click on OK.
Program.cs
//interface
interface IPerson
//properties
string PersonName { get; set; }
string Gender { get; set; }
//abstract method
void Display();
//child class 1
class Student : IPerson
//properties
public string PersonName { get; set; }
public string Gender { get; set; }
public int StudentID { get; set; }
public int Marks { get; set; }
//implementing the IPerson.Display method
public void Display()
System.Console.WriteLine("Student Name: " + PersonName);
System.Console.WriteLine("Gender: " + Gender);
System.Console.WriteLine("Student ID: " + StudentID);
System.Console.WriteLine("Student Marks: " + Marks);
//child class 2
class Employee : IPerson
//properties
public string PersonName { get; set; }
public string Gender { get; set; }
public int EmpID { get; set; }
public double Salary { get; set; }
//implementing the IPerson.Display method
public void Display()
System.Console.WriteLine("Employee Name: " + PersonName);
System.Console.WriteLine("Gender: " + Gender);
System.Console.WriteLine("Employee ID: " + EmpID);
System.Console.WriteLine("Employee Salary: " + Salary);
class Program
{
static void Main()
/********** creating object for child class 1 ***************/
Student s;
s = new Student();
s.PersonName = "Allen";
s.Gender = "Male";
s.StudentID = 101;
s.Marks = 70;
s.Display();
System.Console.WriteLine("\n");
/********** creating object for child class 2 ***************/
Employee emp;
emp = new Employee();
emp.PersonName = "Jones";
emp.Gender = "Male";
emp.EmpID = 201;
emp.Salary = 7000;
emp.Display();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Dynamic Polymorphism in C#.NET
Dynamic Polymorphism using interfaces
� Polymorphism means "decision making". The compiler takes a decision;
which method has to be called. If the decision has been taken at compile-
time (before running), we can call it as "compile-time polymorphism". If the
decision would be taken at run-time (when we run the program), we can call
it as "run-time polymorphism".
� "Method overloading" is an example of "compile-time polymorphism".
� We can implement dynamic polymorphism with interfaces or abstract
classes.
� Steps implementation of dynamic polymorphism using
interfaces:
o First we have to create an interface with one or more methods.
o Next we have implement it in two child classes.
o Create a reference variable for the interface.
o Create an object for first child class; Assign its reference into interface�s
variable & call the method now. It calls the first child class�s method.
o Create an object for second child class; Assign its reference into
interface�s variable & call the method now. It calls the second child class�s
method.
o So, same statement is calling different methods in different situations,
right! This is called �dynamic polymorphism�.
Static Polymorphism (vs) Dynamic Polymorphism
Sl. No
Static Polymorphism
Dynamic Polymorphism
Also called as "compile-time
polymorphism" or "early binding".
Also called as "run-time
polymorphism" or "late binding".
Decision will be taken by the
compiler at compile-time.
Decision will be taken by the CLR at
run-time.
Implemented using "method
overloading".
Implemented using "abstract classes"
or "interfaces".
Dynamic Polymorphism - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DynamicPolymorphismExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DynamicPolymorphismExample�.
� Click on OK.
Program.cs
//interface
interface Interface1
//abstract method in interface
void Display();
//child class 1
class Class1 : Interface1
//Overriding the "Interface1.Display" method
public void Display()
System.Console.WriteLine("Class1.Display");
//child class 2
class Class2 : Interface1
//Overriding the "Interface1.Display" method
public void Display()
System.Console.WriteLine("Class2.Display");
class Program
static void Main()
//create a reference variable of interface type.
Interface1 i;
//create object for first child class
i = new Class1();
i.Display(); //It calls Class1.Display()
//create object for second child class
i = new Class2();
i.Display(); //It calls Class2.Display()
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Dynamic Polymorphism � Example 2
Creating Project
� Open Visual Studio 2015. Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DynamicPolymorphismExample2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DynamicPolymorphismExample2�.
� Click on OK.
Program.cs
//interface
interface IPerson
//properties
string PersonName { get; set; }
string Gender { get; set; }
//abstract method
void Display();
//child class 1
class Student : IPerson
//properties
public string PersonName { get; set; }
public string Gender { get; set; }
//implementing the IPerson.Display method
public void Display()
{
System.Console.WriteLine("Student Name: " + PersonName);
System.Console.WriteLine("Gender: " + Gender);
//child class 2
class Employee : IPerson
//properties
public string PersonName { get; set; }
public string Gender { get; set; }
//implementing the IPerson.Display method
public void Display()
System.Console.WriteLine("Employee Name: " + PersonName);
System.Console.WriteLine("Gender: " + Gender);
class Program
static void Main()
//create reference variable of interface type
IPerson p;
/************* creating object for child class 1 ***************/
p = new Student();
p.PersonName = "Allen";
p.Gender = "Male";
p.Display(); //calls Student.Display
System.Console.WriteLine("\n");
/************* creating object for child class 2 ***************/
p = new Employee();
p.PersonName = "John";
p.Gender = "Male";
p.Display(); //calls Employee.Display
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Multiple Inheritance in C#.NET
Multiple Inheritance using Interfaces
� Interface supports �multiple inheritance�. That means a child class can
implement one or more interfaces. Then we must implement (define) all the
methods of all the interfaces in the same child class.
� Then you can store the address of class�s object in any reference variable of
any of those interfaces.
� Syntax for multiple inheritance:
class Classname : Interface1, Interface2, �
Implement all the methods or all interfaces here
}
Multiple Inheritance - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MultipleInheritanceExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MultipleInheritanceExample�.
� Click on OK.
Program.cs
//interface 1
interface Interface1
void Method1();
void Method2();
//interface 2
interface Interface2
void Method3();
void Method4();
//child class - that implements multiple interfaces. This is called "multiple
inheritance".
class Class1 : Interface1, Interface2
{
public void Method1()
System.Console.WriteLine("Class1.Method1");
public void Method2()
System.Console.WriteLine("Class1.Method2");
public void Method3()
System.Console.WriteLine("Class1.Method3");
public void Method4()
System.Console.WriteLine("Class1.Method4");
class Program
static void Main()
//create reference variable & object for child class
Class1 c1;
c1 = new Class1();
//create a reference variable for Interface1
Interface1 i1;
//store the address of child class's object in the interface reference
variable
i1 = c1;
//call the Interface1's methods only
i1.Method1();
i1.Method2();
System.Console.WriteLine();
//create a reference variable for Interface2
Interface2 i2;
//store the address of child class's object in the interface reference
variable
i2 = c1;
//call the Interface2's methods only
i2.Method3();
i2.Method4();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Interface Inheritance in C#.NET
Interface Inheritance
� An interface can inherit from another interface.
� Then the child class of child interface should implement all the methods of
parent interface & child interface.
� Syntax for interface inheritance:
interface ChildInterface : ParentInterface
}
Interface Inheritance - Example
Creating Project
� Open Visual Studio 2015. Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �InterfaceInheritanceExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �InterfaceInheritanceExample�.
� Click on OK.
Program.cs
//parent interface
interface Interface1
void Method1();
void Method2();
//child interface
interface Interface2 : Interface1
void Method3();
void Method4();
//child class - that implements multiple interfaces. This is called "multiple
inheritance".
class Class1 : Interface2
public void Method1()
{
System.Console.WriteLine("Class1.Method1");
}
public void Method2()
System.Console.WriteLine("Class1.Method2");
public void Method3()
System.Console.WriteLine("Class1.Method3");
public void Method4()
System.Console.WriteLine("Class1.Method4");
class Program
static void Main()
//create reference variable & object for child class
Class1 c1;
c1 = new Class1();
//create a reference variable for Interface1
Interface1 i1;
//store the address of child class's object in the interface reference
variable
i1 = c1;
//call the Interface1's methods only
i1.Method1();
i1.Method2();
System.Console.WriteLine();
//create a reference variable for Interface2
Interface2 i2;
//store the address of child class's object in the interface reference
variable
i2 = c1;
//call the Interface2's methods only
i2.Method3();
i2.Method4();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Principles of Object Oriented Programming
Principles of OOP
� OOP following the following principles.
1) Encapsulation
2) Hiding
3) Abstraction
4) Inheritance
5) Polymorphism
1) Encapsulation:
� Encapsulation is a concept of combining data members and methods
as a single unit called �object�.
� This is implemented by creating classes with data members and
methods.
� Data members are variables that stores the data; Methods are
functions that manipulates the data.
2) Hiding:
� Hiding is a concept of hiding private data to other classes.
� This is implemented by making some data members and methods
private.
3) Abstraction:
� Abstraction is a concept of hiding implementation details (internal
logic) and providing only necessary details to other classes.
� This is implemented by creating private data members and public
methods.
4) Inheritance:
� Inheritance is a concept of creating �parent-child� relationship among
two or more classes.
� As a result of inheritance, all the members of parent class are
accessible in child class.
5) Polymorphism:
� Polymorphism means "decision making".
� Polymorphism means �the ability of a statement that calls different
methods at different situations�.
� Types of polymorphism:
A. Static polymorphism (or) Compile-time polymorphism (or)
Early binding:
. Static polymorphism means method overloading.
. Method overloading is a concept of creating multiple methods
with same name in the same class with different types of
arguments. While calling the method, the matching method
will be executed, depending on the arguments that are
passed.
. The decision of which method is to be executed will be taken
at compilation time (by c#.net compiler). That�s why it is called
�Compile-time polymorphism�.
. Example of static polymorphism: Method overloading
B. Dynamic polymorphism (or) Run-time polymorphism (or) Late
binding:
. Dynamic polymorphism means method overriding.
. Method overriding is a concept of creating two methods with
same name and same signature; one is in parent class and
other one is in child class; both methods have different code.
. You will create a reference variable for the parent class (or)
interface; assign the reference of child class�s object; and call
the method. Then the current child class�s method will be
called.
. The decision of which class�s method is to be executed will be
taken at run time (by .net CLR). That�s why it is called �Run-
time polymorphism�.
. Example of dynamic polymorphism: Reference variable of
interface type.
Sealed Classes in C#.NET
Sealed Classes
� Sealed classes can�t be inheritable.
� If you don�t want to allow your class to be inheritable by others, you can
make it as sealed class.
� Sealed classes can contain any members just like normal classes.
� Syntax:
sealed class Classname
Any members here
Normal Class (vs) Sealed Class
Sl.
No
Normal Class
Sealed Class
Can be inherited.
Can't be inherited.
Sealed Classes - Example
Creating Project
� Open Visual Studio 2015. Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �SealedClassesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �SealedClassesExample�.
� Click on OK.
Program.cs
//sealed class
sealed class Class1
//we can't inherit from "Class1"
class Class2 : Class1
class Program
static void Main()
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: You will get compile time error near �Class2�.
Namespaces in C#.NET
Namespaces
� Namespaces are collections of �types�, such as classes, structures,
enumerations, interfaces and delegate types.
� The type that is present inside the namespace can be accessed by using
�Namespacename.Typename� syntax.
� Namespaces are used to group-up the types that belongs to a module or a
section of the project.
� Syntax:
namespace Namespacename
Classes, Structures, interfaces, Enumerations here
}
Namespaces - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �NamespacesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �NamespacesExample�.
� Click on OK.
Program.cs
namespace Namespace1
class Class1
public void Method1()
System.Console.WriteLine("Namespace1.Class1.Method1");
namespace NamespacesExample
class Program
static void Main()
//create a reference variable
Namespace1.Class1 c1;
//create an object
c1 = new Namespace1.Class1();
//call the method
c1.Method1();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Child Namespaces in C#.NET
Child Namespaces
� A namespace inside another namespace is called as �child namespace�.
� You can access the child namespace by using
�ParentNamespace.ChildNamespace� syntax.
� You can access the types of child namespace by using
�ParentNamespace.ChildNamespace.Typename� syntax.
� Syntax:
namespace ParentNamespacename
namespace ChildNamespacename
Types (Classes, structures etc.)
}
Child Namespaces - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ChildNamespacesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ChildNamespacesExample�.
� Click on OK.
Program.cs
//outer namespace starts
namespace ICICIBank
//inner namespace starts
namespace SavingsBanking
//class starts
class BankAccount
public void Deposit()
System.Console.WriteLine("ICICIBank.SavingsBanking.BankAccount.Deposit");
//class ends
//inner namespace ends
}
//outer namespace ends
namespace ChildNamespacesExample
class Program
static void Main()
//create a reference variable for BankAccount class
ICICIBank.SavingsBanking.BankAccount c1;
//create an object for BankAccount class
c1 = new ICICIBank.SavingsBanking.BankAccount();
//call the method
c1.Deposit();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Child Namespaces � Example 2
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ChildNamespacesExample2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ChildNamespacesExample2�.
� Click on OK.
Program.cs
//Create a child namespace called "SavingsBanking" in a parent namespace
called "ICICIBank"
namespace ICICIBank.SavingsBanking
class BankAccount
public void Deposit()
System.Console.WriteLine("ICICIBank.SavingsBanking.BankAccount.Deposit");
namespace ChildNamespacesExample2
class Program
{
static void Main()
//create reference variable
ICICIBank.SavingsBanking.BankAccount c1;
//create object
c1 = new ICICIBank.SavingsBanking.BankAccount();
//call method
c1.Deposit();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�using� statement in C#.NET
Using
� The �using� statement is used to import a namespace in the file.
� When you import a namespace, you can access all its members (classes,
structures etc.) directly, without writing the namespace name every time.
� Syntax:
using Namespacename;
�using� statement - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �UsingExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �UsingExample�.
� Click on OK.
Program.cs
//import the namespace
using ICICIBank.SavingsBanking;
//create a child namespace called "SavingsBanking" in a parent namespace
called "ICICIBank"
namespace ICICIBank.SavingsBanking
class BankAccount
public void Deposit()
System.Console.WriteLine("ICICIBank.SavingsBanking.BankAccount.Deposit");
namespace UsingExample
{
class Program
static void Main()
//create reference variable; access "BankAccount" class directly, as it
is already imported above.
BankAccount c1;
//create object; access "BankAccount" class directly, as it is already
imported above.
c1 = new BankAccount();
//call the method
c1.Deposit();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�using - alias� statement in C#.NET
Using Alias
� It is used to create a �nick name� for a namespace, for easy access.
� You can access all the namespace�s members, by using the nickname.
� Syntax:
using Nickname = Namespacename;
�using - alias� statement - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �UsingAliasExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �UsingAliasExample�.
� Click on OK.
Program.cs
//creating alias name
using i = India;
using p = Pakisthan;
namespace India
class Hyderabad
public void City()
System.Console.WriteLine("India.Hyderabad");
namespace Pakisthan
class Hyderabad
{
public void City()
System.Console.WriteLine("Pakisthan.Hyderabad");
namespace UsingAliasExample
class Program
static void Main()
i.Hyderabad h1 = new i.Hyderabad();
p.Hyderabad h2 = new p.Hyderabad();
h1.City();
h2.City();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Creating Separate Files for Classes in
C#.NET
Separate Files
� In realtime applications, it is recommended to create a class in its own
separate file, instead of creating all the classes in the same file.
� Class files make the large project easy to understand and maintain.
� Each class file�s extension should be �.cs�.
� A project can have any no. of class files.
� To add a class file, open the solution explorer; right click on the project
name and click on �Add� � �New Item�; select �Class�; type the class name as
�Filename.cs�; click on �Add�.
Creating Separate Files for Classes -
Example
Creating Project
� Open Visual Studio 2015. Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �SeparateFilesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �SeparateFilesExample�. Click on OK.
� Open Solution Explorer. Right click on the project name
(SeparateFilesExample) and click on �Add� � �New Item�. Click on �Code� �
�Class�. Type the file name as �BankAccount.cs�. Click on �Add�. Then it
creates the file �BankAccount.cs� in solution explorer.
BankAccount.cs
//Create a child namespace called "SavingsBanking" in a parent namespace
called "ICICIBank"
namespace ICICIBank.SavingsBanking
class BankAccount
public void Deposit()
System.Console.WriteLine("ICICIBank.SavingsBanking.
BankAccount.Deposit");
}
Program.cs
namespace mynamespace
class Program
static void Main()
//create reference variable
ICICIBank.SavingsBanking.BankAccount c1;
//create object
c1 = new ICICIBank.SavingsBanking.BankAccount();
//call the method
c1.Deposit();
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Partial Classes in C#.NET
Partial Classes
� Partial classes are used to split a large class into multiple files.
� In real time, one part of the class will be created by one programmer and
other part of the class will be created by other programmer; sometimes one
part of the class will be automatically generated by visual studio and other
part of the class will be created by the programmer.
� All the partial classes that should have a same name, should have �partial�
keyword, and should be inside a same namespace.
� Syntax to create a partial class:
partial class Classname
Members here
}
Partial Classes - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �PartialClassesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �PartialClassesExample�.
� Click on OK.
� Open Solution Explorer. Right click on the project and click on �Add� � �New
Item�. Select �Class�. Type the file name as �File1.cs�. Click on �Add�.
� Open Solution Explorer. Right click on the project and click on �Add� � �New
Item�. Select �Class�. Type the file name as �File2.cs�. Click on �Add�.
File1.cs
//create a parent namespace called "ICICIBank" and create a child
namespace called "SavingsBanking" in the parent namespace
namespace ICICIBank.SavingsBanking
//create a class called "BankAccount" in "ICICIBank.SavingsBanking"
namespace. This is a partial class. So at compilation time, the code for
File2.cs also will be combined with this class.
partial class BankAccount
//data members
public int accountnumber = 1234;
public string accountholdername = "John";
public double currentbalance = 10000;
//Deposit method
public void Deposit(double amount)
currentbalance = currentbalance + amount;
File2.cs
//create a parent namespace called "ICICIBank" and create a child
namespace called "SavingsBanking" in the parent namespace
namespace ICICIBank.SavingsBanking
//Continue the definition of "BankAccount" class, which is defined at
"File1.cs".
partial class BankAccount
//Withdraw method
public void Withdraw(double amount)
currentbalance = currentbalance - amount;
}
Program.cs
namespace PartialClassesExample
class Program
static void Main()
//create reference variable
ICICIBank.SavingsBanking.BankAccount c1;
//create object
c1 = new ICICIBank.SavingsBanking.BankAccount();
//get current balance
System.Console.WriteLine(c1.currentbalance);
System.Console.ReadKey();
//deposit
c1.Deposit(5000);
System.Console.WriteLine(c1.currentbalance);
System.Console.ReadKey();
//withdraw
c1.Withdraw(2000);
System.Console.WriteLine(c1.currentbalance);
System.Console.ReadKey();
}
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
After Pressing Enter
After Pressing Enter
Enumerations in C#.NET
Enumerations
� Enumerations are used to avoid the entry of wrong values into the variable.
It allows any one of the specific list of values.
� Enumeration is a collection of constants; each constant is assigned to an
integer value automatically (Starts with zero (0) by default).
� Based on enumeration, we can create enumeration variables (as a data
member or local variable).
� Enumeration variables can store any one of the enumeration constant.
� Syntax to create enumeration:
enum Enumerationname
Constant1, Constant2, �
}
Enumerations - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �EnumerationExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �EnumerationExample�.
� Click on OK.
Program.cs
using System;
//create a namespace called "EnumerationExample"
namespace EnumerationExample
//create an enumeration called "GenderEnumeration" inside a namespace
called "EnumerationExample"
enum GenderEnumeration
Male, Female
//create a class called "Person"
class Person
//data member of "String" data type
public string PersonName;
//data member of "GenderEnumeration" data type. This data member
can accept any one of the constants defined at GenderEnumeration only.
public GenderEnumeration Gender;
}
class Program
static void Main()
//create reference variable of Person type
Person p;
//create an object of Person type
p = new Person();
//set data into PersonName
p.PersonName = "Scott";
//set data into "Gender". It accepts "Male" or "Female" only, as it is
"GenderEnumeration" type.
p.Gender = GenderEnumeration.Male;
//get data from data members
Console.WriteLine(p.PersonName);
Console.WriteLine(p.Gender);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Structures in C#.NET
Structures
� Structure is type (data type), which is a collection of members such as data
members, methods, constructors, properties etc., similar to classes.
� No memory will be allocated for structure. We can create "structure
variables" (instance) based on structure. For structure variables only
memory will be allocated. �Structure variable� stores actual data.
� Syntax to create structure:
struct Structurename
Data members, methods, constructors, properties etc.
Similarities between Classes and Structures
Sl. No
Class
Structure
Class is also a collection of
members like data members,
methods, constructors and
properties etc.
Structure is a collection of members
like data members, methods,
constructors and properties etc.
A class is a data type.
A structure is a data type.
Differences between Classes and Structures
Sl.
No
Class
Structure
An instance of class s called as
�object�.
�Object� are stored in �heap�.
�Instance of structure� is called as
�structure variable�.
�Structure variables� are stored in
�stack�.
We can create a reference variable
based on class.
We can�t create a reference variable
based on structure.
Classes are �reference-type� data
types; because �objects� are stored
in heap and its reference (address)
will be stored in stack.
Structures are �value-type� data types;
because �structure variables� (data)
directly will be stored in stack; there is
no �reference� (address) concept for
structures.
Classes are little bit slower than
structures; because to reach an
object, we have to go through
stack and find out the object based
on the address stored in the
reference variable.
Structures are little bit faster than
classes; because to reach a structure
variable, there is no need to search for
the address.
5
Classes support �inheritance� and
many other concepts.
Structures doesn�t support inheritance
and its related concepts.
Classes are suitable for creating
complex data structures &
methods.
Structures are suitable for creating
simple data structures.
�String�, �StringBuilder� etc., are
pre-defined classes.
All standard data types (except
�string�), such as int, float, double,
DateTime etc., are structures.
Classes supports both �parameter-
less constructor� and also
�parameterized constructor�.
Structures doesn�t support �parameter-
less constructor�; but supports
�parameterized constructor�.
The following syntax creates a
reference variable for the class:
Classname referencevariable;
The following syntax creates a structure
variable (instance) for the structure.
Structurename Structurevariable;
10
The following syntax creates an
object (instance) for the class &
also initializes all the data
members of the object:
new classname();
If the data member is numerical
data type, it initializes zero (0). If
the data member is string data
type, it initializes null. If the data
member is bool data type, it
initializes �false�.
The following syntax will not create an
instance, but initializes all the data
members of structure variable
(instance).
new structurename();
If the data member is numerical data
type, it initializes zero (0). If the data
member is string data type, it initializes
null. If the data member is bool data
type, it initializes �false�.
Structures - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �StructuresExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �StructuresExample�. Click on OK.
Program.cs
using System;
namespace StructuresExample
//create structure called "Student"
struct Student
//data members in structure
public int studentid;
public string studentname;
public int marks;
class Program
static void Main()
//create structure variable (instance)
Student s;
//set data into data members of structure variable
s.studentid = 1;
s.studentname = "Scott";
s.marks = 70;
//get data from data members of structure variable
Console.WriteLine(s.studentid);
Console.WriteLine(s.studentname);
Console.WriteLine(s.marks);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Structures with Constructors - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �StructuresWithConstructorsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �StructuresWithConstructorsExample�.
� Click on OK.
Program.cs
using System;
namespace StructuresWithConstructorsExample
//creating a structure
struct Student
//data members in structure
public int studentid;
public string studentname;
public int marks;
public string grade;
//constructor in structure
public Student(int value1, string value2, int value3)
studentid = value1;
studentname = value2;
marks = value3;
grade = "none";
//method in structure
public void CalculateGrade()
if (marks >= 80 && marks <= 100)
grade = "A grade";
else if (marks >= 60 && marks < 80)
grade = "B grade";
else if (marks >= 50 && marks < 60)
grade = "C grade";
else if (marks >= 35 && marks < 50)
grade = "D grade";
else if (marks < 35)
grade = "Fail";
class Program
static void Main()
//create structure variable (instance)
Student s;
//call the constructor
s = new Student(1, "Scott", 75);
//get data from data members of structure variable
Console.WriteLine("Student ID: " + s.studentid);
Console.WriteLine("Student name: " + s.studentname);
Console.WriteLine("Marks: " + s.marks);
//call method
s.CalculateGrade();
Console.WriteLine("Grade: " + s.grade);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Standard Data Types
Standard Data Types are Structures / Classes
� All the standard data types are structures / classes.
Sl. No
Standard Data Type
Structure / Class
sbyte
struct SByte
byte
struct Byte
short
struct Int16
ushort
struct UInt16
int
struct Int32
uint
struct UInt32
long
struct Int64
8
ulong
struct UInt64
float
struct Single
10
double
struct Double
11
decimal
struct Decimal
12
char
struct Char
13
string
class String
14
bool
struct Boolean
15
DateTime
struct DateTime
The "System.Object" class in C#.NET
The �object� data type & �System.Object� class
� The "object" data type is an alias (nick) name of "System.Object" class.
� The "System.Object" is ultimate base class in .net, based on which all
structures and classes are inherited from.
� When you create a class in .net, automatically it will be treated as child class
of the parent class called �System.Object�.
�System.Object� Class - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ObjectClassExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ObjectClassExample�.
� Click on OK.
Program.cs
using System;
namespace ObjectClassExample
class Class1
class Program
static void Main()
//create a reference variable of "System.Object" type
System.Object a;
//create an object of "Class1" and store its address in the reference
variable
a = new Class1();
Console.WriteLine("Done");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Methods of "System.Object" class
Methods of �System.Object� class
� The �System.Object� class is a parent class to all classes and structures in
.net.
� The �System.Object� class provides the following methods to all classes and
structures:
A. bool Equals(Other Object)
. The Equals() method compares the actual object and other
object whether both are equal; It returns true if both are equal.
It returns false if both are not equal.
B. int GetHashCode()
. The GetHashCode() method returns the memory address of
the actual object.
C. Type GetType()
. The GetType() method returns the class name or structure
name to which the actual object belongs to.
D. string ToString()
. The ToString() method returns the class name or structure
name to which the actual object belongs to (similar to GetType
method). But it can be overridden in the child class. If it is
overridden, the child class�s method will run.
Methods of �System.Object� class - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ObjectClassMethodsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ObjectClassMethodsExample�.
� Click on OK.
Program.cs
using System;
namespace ObjectClassMethodsExample
//"Class1" is child class of "System.Object" class automatically
class Class1
//override the ToString() method, which is the virtual method in
System.Object class
public override string ToString()
System.Console.WriteLine(base.GetHashCode());
return "Class1.ToString";
class Program
{
static void Main()
//create two reference variables for Class1
Class1 c1, c2;
//create two objects for Class1
c1 = new Class1();
c2 = new Class1();
//call Equals method. This method compares whether c1 and c2 are
equal.
bool b = c1.Equals(c2);
Console.WriteLine(b);
//call GetHashCode method. This method returns the memory
address of the object.
int c = c1.GetHashCode();
Console.WriteLine(c);
//call GetType method. This method returns the type (class name) of
the object.
string t = c1.GetType().ToString();
Console.WriteLine(t);
//call ToString method. This method will call "ToString()" method,
which is defined in "Class1".
string s = c1.ToString();
Console.WriteLine(s);
Console.ReadKey();
}
}
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Boxing in C#.NET
Boxing
� It is a process of converting a value from "value-type data type (any
structure)" to "reference-type data type (System.Object class)".
� It will be done automatically.
Syntax: ReferenceTypeVariable = ValueTypeVariable ;
Boxing - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �BoxingExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �BoxingExample�.
� Click on OK.
Program.cs
using System;
namespace BoxingExample
class Program
static void Main()
//creating a variable of "int" data type. "int" is a "structure". All the
structures "value-type data types".
int a = 1000;
//creating a reference variable of "System.Object" data type.
"System.Object" is a class. All the classes are "reference-type data types".
System.Object obj;
//Automatic conversion from "int" structure to "System.Object" class.
This is called boxing.
obj = a;
//get values
Console.WriteLine(a); //Output: 1000
Console.WriteLine(obj); //Output: 1000
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Unboxing in C#.NET
Unboxing
� It is a process of converting a value from "reference-type data type
(System.Object)" to "value-type data type (any structure)". It should be done
manually, by using �type casting� syntax.
Syntax: ValueTypeVariable = (ExpectedDataTypehere)ReferenceTypeVariable;
Unboxing - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �UnboxingExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �UnboxingExample�.
� Click on OK.
Program.cs
using System;
namespace UnboxingExample
class Program
static void Main()
//create a reference variable of "System.Object" data type.
"System.Object" is a class; All the classes are "reference-type" data type.
Object obj = 100;
//create a variable of "int" data type. "int" is a structure. All the
structures "value-type" data type.
int a;
//manual conversion from "System.Object" class to "int" structure.
This is called "unboxing".
a = (int)obj;
//get values
Console.WriteLine(obj); //Output: 100
Console.WriteLine(a); //Output: 100
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Static Data Members in C#.NET
Static Data Members
� Static data members are used to common data that belongs to all the
objects. Non-Static Data members are stored in the objects; Static data
members are stored outside the objects. Static members are not accessible
with reference variable, but accessible with �class name�.
� Data members are two types:
1. Non-static data members (or) instance data members
2. Static data members (or) shared data members
Sl.
No
Non-Static Data Members
Static Data Members
By default, all the data members are
non-static data members. These are
not created with a keyword called
�static�.
Static data members are created using
�static� keyword.
Non static data members are stored in
the object. That means when you
create an object for the class, the
memory will be allocated for all the
non-static data members in the object.
For static data members, memory will not
be allocated in the object. When you
access the class name for the first time in
the main method, then memory will be
allocated for the static data members.
Non-static data member�s memory will
be allocated separately for every
object of the class.
Static data member�s memory will be
allocated only once for entire project.
4
Non-static data members accessible
with reference variable.
Static data members are accessible with
class.
If you don�t create an object for the
class, no memory will be allocated for
non-static data member.
If you don�t access the class in the entire
program, no memory will be allocated for
static data members.
Use non-static data members if you
want to store object-specific data
(which is different for each object).
Use static data members if you want to
store common data that belongs to all
the objects.
Static Data Members - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �StaticDataMembersExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �StaticDataMembersExample�.
� Click on OK.
Program.cs
using System;
namespace StaticDataMembersExample
//creating a class called "Student".
class Student
//instance data members (or) non-static data members
public int studentid;
public string studentname;
public int marks;
//static data member (or) shared data member
public static string collegename;
class Program
static void Main()
{
//create two reference variables
Student s1;
Student s2;
//create two objects
s1 = new Student();
s2 = new Student();
//set data into members of s1
s1.studentid = 1;
s1.studentname = "scott";
s1.marks = 70;
//set data into members of s2
s2.studentid = 2;
s2.studentname = "allen";
s2.marks = 80;
//get data from members of s1
Console.WriteLine("Student ID: " + s1.studentid);
Console.WriteLine("Student Name: " + s1.studentname);
Console.WriteLine("Marks: " + s1.marks);
Console.WriteLine();
//get data from members of s2
Console.WriteLine("Student ID: " + s2.studentid);
Console.WriteLine("Student Name: " + s2.studentname);
Console.WriteLine("Marks: " + s2.marks);
Console.WriteLine();
//set data into static data member
Student.collegename = "ABC college of technology";
//get data from static data member
Console.WriteLine("College Name: " + Student.collegename);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Static Constructors in C#.NET
Static Constructors
� Non-static constructors (normal constructors) initialize non-static data
members and static data members; Static constructors initialize static data
members only. Static constructors will be called automatically when the
class is used for the first time in Main method.
� Constructors are two types:
1. Non-static constructors (or) instance constructors
2. Static constructors (or) shared constructors
Sl. No
Non-Static Constructors
Static Constructors
By default, all the constructors are
non-static constructors. These are
not created with a keyword called
�static�.
Static constructors are created
using �static� keyword.
Non-static constructors can access
both non-static members and non-
static members.
Static constructors can access only
static members. Static constructors
can�t access non-static members.
However, if you create an object
for the class in the static
constructor, then you can access
any non-static members though the
object, in the static constructor.
Non-static constructors are
accessible with object only. When
you create an object for the class, it
calls the non-static constructor
automatically. Non-static
constructors are not accessible
without creating an object for the
class.
Static constructor will be called
automatically when you access the
class name for the first time in the
Main method.
4
Non-static constructor will be
called every time when we create
an object for the class.
Static constructor will be called
only once in the entire program.
We can use �this� keyword in the
non-static constructors, because
non-static constructors are called
with an object.
We can�t use �this� keyword in the
static constructor, because static
constructor is called with class only,
without an object.
A class can have �n� no. of non-
static constructors.
A class can have only one static
constructor.
Use non-static constructors, if you
want to initialize non-static data
members.
Use static constructor if you want
to initialize static data members.
Non-static constructors can receive
�n� no. of arguments.
Static constructor can�t receive any
arguments.
Non-static constructors can�t
return any value.
Static constructor also can�t return
any value.
10
Access modifier such as �internal�
and �public� can be applicable for
the non-static constructor.
Access modifier is not applicable
for the static constructor. By
default, they are �public�.
Static Constructors - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �StaticConstructorsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �StaticConstructorsExample�. Click on OK.
Program.cs
using System;
namespace StaticConstructorsExample
//creating a class called "Class1"
class Class1
//static data members
public static int a, b;
//static constructor. It initializes the static data members
static Class1()
a = 10;
b = 20;
class Program
{
static void Main()
{
//Note: static constructor will be automatically called here
//get data from static data members
Console.WriteLine(Class1.a); //Output: 10
Console.WriteLine(Class1.b); //Output: 20
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Static Methods in C#.NET
Static Methods
� Non-static methods are used to manipulate non-static data members; Static
methods are used to manipulate static data members only. Static methods
can be called with class name only.
� Methods are two types:
1. Non-static methods (or) instance methods
2. Static methods (or) shared methods
Sl.
No
Non-Static Methods
Static Methods
By default, all the methods are
non-static methods. These are
not created with a keyword
called �static�.
Static methods are created using �static�
keyword.
Non-static methods can access
both non-static members and
non-static members.
Static methods can access only static
members. Static methods can�t access
non-static members. However, if you
create an object for the class in the static
methods, then you can access any non-
static members though the object, in the
static method.
Non-static methods are
accessible with object only. Non-
static methods are not accessible
without creating an object for
the class.
Static methods are accessible with class
only. Static methods are accessible
without creating an object for the class.
Static methods are not accessible with an
object.
4
We can use �this� keyword in the
non-static methods, because
non-static methods are called
with an object.
We can�t use �this� keyword in the static
methods, because static methods are
called with class only, without an object.
5
Use non-static methods, if you
want to perform some operation
based on non-static data
members.
Use static data members if you want to
perform some operation based on static
data members.
Static Methods - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �StaticMethodsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �StaticMethodsExample�.
� Click on OK.
Program.cs
using System;
namespace StaticMethodsExample
//creating a class called "Class1"
class Class1
//static data members
public static int n, sum;
//static method. This method performs manipulations on static data
members
public static void CalculateSumOfnNaturalNumbers()
for (int i = 1; i <= n; i++)
sum += i;
class Program
{
static void Main()
//Note: .NET allocates memory for static data members automatically
here.
//set value into static data member
Class1.n = 10;
//call static method
Class1.CalculateSumOfnNaturalNumbers();
//get data from static data member
Console.WriteLine("Sum: " + Class1.sum); //Output: 55
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Static Classes in C#.NET
Static Classes
� Static classes can contain only static members (static data members, static
methods, static constructors, static properties etc.).
� Static classes can�t contain non-static members.
� We can�t create an object for static class.
� Syntax to create static class:
static class Classname
Only static members here
Normal Class (vs) Static Class
Sl. No
Normal class
Static class
No "static" keyword.
Should have "static" keyword.
Can have both non-static
members and static members
also.
Can have only static members.
We can create an object for
normal class.
We can't create an object for static
class.
Static Classes - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �StaticClassesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �StaticClassesExample�.
� Click on OK.
Program.cs
using System;
namespace StaticClassesExample
//static class. A static class contains only static data members, static
properties, static constructors, and static methods only
static class Class1
//static data member
public static string _Message;
//static properties
public static string Message
set
_Message = value;
}
get
return _Message;
//static constructor
static Class1()
Message = "Hello";
//static method
public static void Method1()
Console.WriteLine("Class1.Method1");
class Program
static void Main()
//Note: .NET automatically allocated memory for static data member
here
//Note: static constructor will be called automatically here
//get value from static property
Console.WriteLine(Class1.Message);
//call static method
Class1.Method1();
Console.ReadKey();
}
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Constant Data Members in C#.NET
Constant data members
� Constant data member�s value can�t be changed in the rest life of the object.
� Constant data members must be initialized along with the declaration.
Those can�t be initialized in the constructor.
� Constant data members are created using �const� keyword.
� Constant data members are by default �static�; so they are accessible
without creating an object for the class, using class name.
� Syntax:
Accessmodifier const Datatype Constantname = value;
Constant Data Members - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ConstantsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ConstantsExample�.
� Click on OK.
Program.cs
using System;
namespace ConstantsExample
class Class1
//'constant data member'. This is static by default.
public const int NoOfMonthsInYear = 12;
class Program
static void Main()
//get value from 'constant data member'
Console.WriteLine(Class1.NoOfMonthsInYear);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
ReadOnly Data Members in C#.NET
Read-only data members
� Read-only data members must be initialized along with the declaration or in
the constructor. It must be initialized before constructor ends.
� Read-only data member�s value can�t be changed in the rest life of the
object.
� Read-only data members are created using �readonly� keyword.
� Syntax:
Accessmodifier readonly Datatype Variablename;
Constant (vs) Readonly
Sl. No
Constant
Readonly
Declared with "const" keyword.
Declared with "readonly" keyword.
Can be created in a method or as
a data member.
Can be created as a data member
only.
Should be initialized along with
its declaration.
Should be initialized either along with
its declaration or in the constructor.
Useful to initialize a fixed value
only.
Useful to initialize fixed value or
result of a calculation.
ReadOnly Data Members - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ReadOnlyExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ReadOnlyExample�.
� Click on OK.
Program.cs
using System;
namespace ReadOnlyExample
class Class1
//readonly data member
public readonly int NoOfDaysInMonth;
//constructor
public Class1()
//get system year
int y = DateTime.Now.Year;
//get system month
int m = DateTime.Now.Month;
//create a local variable
int d;
//check
switch (m)
case 1: d = 31; break;
case 2: d = 28; break;
case 3: d = 31; break;
case 4: d = 30; break;
case 5: d = 31; break;
case 6: d = 30; break;
case 7: d = 31; break;
case 8: d = 31; break;
case 9: d = 30; break;
case 10: d = 31; break;
case 11: d = 30; break;
case 12: d = 31; break;
default: d = 0; break;
//check leap year
if (y % 4 == 0 && m == 2)
d = 29;
//set the value of "d" into "NoOfDaysInMonth" data member
NoOfDaysInMonth = d;
}
class Program
static void Main()
//create reference variable
Class1 c1;
//create object
c1 = new Class1();
//get value from readonly data member
Console.WriteLine(c1.NoOfDaysInMonth);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Generic Classes in C#.NET
Generic Classes
� Generic class is a class, which contains one or more generic-type data
members.
� Generic classes let you to store different values with respective to different
objects in the same data members.
� Generic classes let you to decide the data type of a data member, while
creating object, rather than deciding the data type while creating the class.
� While creating an object for the generic class, you have to specify the data
type of a data member.
� While creating a re-usable class, instead of you decide the data type of a
data member within your class, if you want to let other programmers decide
the data type that they want, you can make your class as generic class and
make your data member as generic data member.
� Syntax to create generic class:
class Classname<T>
public T Datamembername;
}
Generic Classes - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �GenericsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �GenericsExample�.
� Click on OK.
Program.cs
using System;
namespace GenericsExample
//generic class with a generic-type parameter called "T"
class Class1<T>
//generic data member of generic-type called "T"
public T x;
class Program
static void Main()
//creating first generic object. As per this object "x" is of "int" data
type.
Class1<int> c1;
c1 = new Class1<int>();
c1.x = 100;
Console.WriteLine(c1.x); //Output: 100
//creating second generic object. As per this object "x" is of "string"
data type.
Class1<string> c2;
c2 = new Class1<string>();
c2.x = "hello";
Console.WriteLine(c2.x); //Output: hello
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Multiple Generics - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MultipleGenericsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MultipleGenericsExample�.
� Click on OK.
Program.cs
using System;
namespace MultipleGenericsExample
//generic class with two generic-type parameters called "T1" and "T2"
class Class1<T1, T2>
//generic data member of generic-type called "T1"
public T1 x;
//generic data member of generic-type called "T2"
public T2 y;
class Program
static void Main()
{
//creating first generic object. As per this object "x" is of "int" data
type and "y" is of "bool" data type.
Class1<int, bool> c1;
c1 = new Class1<int, bool>();
c1.x = 100;
c1.y = true;
Console.WriteLine(c1.x); ; //Output: 100
Console.WriteLine(c1.y); ; //Output: true
Console.WriteLine();
//creating second generic object. As per this object "x" is of "string"
data type and "y" is of "double" data type.
Class1<string, double> c2;
c2 = new Class1<string, double>();
c2.x = "hello";
c2.y = 100.438;
Console.WriteLine(c2.x); //Output: hello
Console.WriteLine(c2.y); //Output: 100.438
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Arrays in C#.NET
Arrays
� An array is a collection of multiple values of same data type.
� For each element, system automatically maintains an index. The index
always starts from zero (0).
� Ex: Country names, City names, student marks etc.
� Syntax to create an array:
Datatype [ ] Arrayname = new Datatype [int length];
Arrays - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ArraysExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ArraysExample�.
� Click on OK.
Program.cs
using System;
namespace ArraysExample
class Program
static void Main()
//create an array with 5 elements.
int[ ] a = new int[5] { 10, 20, 50, 80, 100 };
//get values from array, based on the index
Console.WriteLine(a[0]);
Console.WriteLine(a[1]);
Console.WriteLine(a[2]);
Console.WriteLine(a[3]);
Console.WriteLine(a[4]);
Console.WriteLine();
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Arrays with For Loop in C#.NET
Arrays with for loop
� We can read elements from an array, by using for loop:
� The for loop executes once for one element.
� Syntax to read all elements from an array using for loop:
for (int i=0; i < arrayname.Length; i++)
Code here
}
Arrays with For Loop - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ArraysWithForExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ArraysWithForExample�.
� Click on OK.
Program.cs
using System;
namespace ArraysWithForExample
class Program
static void Main()
//create an array with 5 elements
int[ ] a = new int[5] { 10, 20, 50, 80, 100 };
//get values from array, using for loop
for (int i = 0; i < a.Length; i++)
Console.WriteLine(a[i]);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Arrays with Foreach Loop
in C#.NET
Arrays with Foreach loop
� �foreach� loop is used to read all the values from an array.
� It executes once for one element in the array. Each time, the current
element will be stored in the temporary variable.
� Syntax of foreach loop:
foreach (Datatype Variablename in Arrayname)
� But it is used to read all the values of an array, sequentially. It is not
possible
to read some of the values, by using �foreach� loop. It is also not possible to
read the elements randomly or in reverse order.
Arrays with Foreach Loop � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ArraysWithForEachExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ArraysWithForEachExample�.
� Click on OK.
Program.cs
using System;
namespace ArraysWithForEachExample
class Program
static void Main()
//create an array with 5 elements
int[ ] a = new int[5] { 10, 20, 50, 80, 100 };
//get values from array, using foreach loop
foreach (int item in a)
Console.WriteLine(item);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.Array� class in C#.NET
�System.Array� class
� The �System.Array� is a pre-defined class. An object of �System.Array� class
represents an array.
� In c#.net, every array is automatically treated as an object of �System.Array�
class. So we can call methods of �System.Array� class, by using any array.
� The �System.Array� class has the following methods:
1. System.Array.IndexOf()
2. System.Array.BinarySearch()
3. System.Array.Clear()
4. System.Array.Resize()
5. System.Array.Sort()
6. System.Array.Reverse()
7. System.Array.CopyTo()
�System.Array.IndexOf� method in C#.NET
Sl. No
Method
int System.Array.IndexOf(System.Array array, object value)
This method searches the array for the given value.
If the value is found, it returns its index.
If the value is not found, it returns -1.
array: This parameter represents the array, in which you want to search.
value: This parameter represents the actual value that is to be searched.
The �IndexOf� method performs linear search. That means it searches all
the elements of an array, until the search value is found. When the search
value is found in the array, it stops searching and returns its index.
The linear search has good performance, if the array is small. But if the
array is larger, Binary search is recommended to improve the performance.
�System.Array.IndexOf� method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ArraysWithIndexOfExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ArraysWithIndexOfExample�.
� Click on OK.
Program.cs
using System;
namespace ArraysWithIndexOfExample
class Program
static void Main()
//create array with
int[ ] a = new int[5] { 100, 2000, 50, 8, 1000 };
//search (linear search) for "50" in array & get its index
int n = Array.IndexOf(a, 50);
Console.WriteLine(n); //Output: 2
Console.ReadKey();
}
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.Array.IndexOf� method � with
NotFound - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ArraysWithIndexOfWithNotFound�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ArraysWithIndexOfNotFound�.
� Click on OK.
Program.cs
using System;
namespace ArraysWithIndexOfWithNotFound
class Program
static void Main()
//create array
int[] a = new int[5] { 100, 2000, 50, 8, 1000 };
//search (linear search) for "500" in array & get its index. If not found,
it returns -1
int n = Array.IndexOf(a, 500);
Console.WriteLine(n);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.Array.BinarySearch� method in
C#.NET
Sl. No
Method
int System.Array.BinarySearch(System.Array array, object
value)
This method searches the array for the given value.
If the value is found, it returns its index.
If the value is not found, it returns -1.
array: This parameter represents the array, in which you want to search.
value: This parameter represents the actual value that is to be searched.
The �BinarySearch� method performs binary search. The �Binary Search�
requires an array, which is already sorted. On unsorted arrays, binary
search is not possible.
Binary search means it directly goes to the middle of the array (array size /
2), and checks that item is less than / greater than the search value. If that
item is greater than the search value, it searches only in the first half of the
array. If that item is less than the search value, it searches only in the
second half of the array. Thus it searches only half of the array. So in this
way, it saves performance.
�System.Array.BinarySearch� method -
Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ArraysWithBinarySearchExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ArraysWithBinarySearchExample�.
� Click on OK.
Program.cs
using System;
namespace ArraysWithBinarySearchExample
class Program
static void Main()
//For Binary search, we must need a sorted array (should have the
values in ascending order)
int[ ] a = new int[5] { 10, 20, 50, 80, 100 };
//search (binary search) for "50" in sorted array & get its index
int n = Array.BinarySearch(a, 50);
Console.WriteLine(n);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.Array.Clear� method in C#.NET
Sl. No
Method
void System.Array.Clear(System.Array array, int index, int
length)
This method starts with the given index and sets all the �length� no. of
elements to zero (0).
array: This parameter represents the array, in which you want to clear the
elements.
index: This parameter represents the index, from which clearing process is
to be started.
length: This parameter represents the no. of elements that are to be
cleared.
�System.Array.Clear� method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ArraysWithClearExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ArraysWithClearExample�.
� Click on OK.
Program.cs
using System;
namespace ArraysWithClearExample
class Program
static void Main()
//create array
int[ ] a = new int[8] { 10, 20, 50, 80, 100, 780, 900, 1000 };
//set the 3 elements to zero (0), starting from index "2"
Array.Clear(a, 2, 3);
//get values from array
foreach (int item in a)
Console.WriteLine(item);
}
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.Array.Resize� method in C#.NET
Sl. No
Method
void System.Array.Resize(ref System.Array array, int
newSize)
This method increases / decreases size of the array.
array: This parameter represents the array, which you want to resize.
newSize: This parameter represents the new size of the array, how many
elements you want to store in the array. It can be less than or greater than
the current size.
�System.Array.Resize� method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ArraysWithResizeExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ArraysWithResizeExample�.
� Click on OK.
Program.cs
using System;
namespace ArraysWithResizeExample
class Program
static void Main()
//create array (current size of array is "4")
int[ ] a = new int[4] { 10, 20, 50, 80 };
//change size of the array from "4" to "6"
Array.Resize(ref a, 6);
a[4] = 200;
a[5] = 350;
//get values from array
foreach (int item in a)
{
Console.WriteLine(item);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.Array.Sort� method in C#.NET
Sl. No
Method
void System.Array.Sort(System.Array array)
This method sorts the array in ascending order.
array: This parameter represents the array, which you want to sort.
�System.Array.Sort� method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ArraysWithSortExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ArraysWithSortExample�.
� Click on OK.
Program.cs
using System;
namespace ArraysWithSortExample
class Program
static void Main()
//create array
int[ ] a = new int[7] { 50, 20, 100, 30, 500, 150, 300 };
//sort the array
Array.Sort(a);
//get values from array
foreach (int item in a)
Console.WriteLine(item);
}
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.Array.Reverse� method in C#.NET
Sl. No
Method
void System.Array.Reverse(System.Array array)
This method reverses the array.
array: This parameter represents the array, which you want to reverse.
�System.Array.Reverse� method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ArraysWithReverseExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ArraysWithReverseExample�.
� Click on OK.
Program.cs
using System;
namespace ArraysWithReverseExample
class Program
static void Main()
//create array
int[ ] a = new int[7] { 50, 20, 100, 30, 500, 150, 300 };
//reverse the array
Array.Reverse(a);
//get values from the array
foreach (int item in a)
Console.WriteLine(item);
}
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.Array.CopyTo� method in C#.NET
Sl. No
Method
void sourceArray.CopyTo(System.Array destinationArray, int
startIndex)
This method copies all the elements from source array to destination array.
sourceArray: This parameter represents the array, which array you want to
copy.
destinationArray: This parameter represents the array, into which you
want to copy the elements of source array.
startIndex: This parameter represents the index of the element, from
which you want to start copying.
�System.Array.CopyTo� method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ArraysWithCopyToExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ArraysWithCopyToExample�.
� Click on OK.
Program.cs
using System;
namespace ArraysWithCopyToExample
class Program
static void Main()
//create array
int[] a = new int[5] { 10, 20, 50, 80, 100 };
//create another array
int[] b = new int[5];
//copy all the elements from one array to another array
a.CopyTo(b, 0);
//get values from array
foreach (int item in b)
Console.WriteLine(item);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Multi-Dimensional Array in C#.NET
Multi-dimensional array
� Multi-dimensional arrays are used to store multiple values in a single row of
an array.
� Syntax to create multi-dimensional array:
Datatype[ , ] Arrayname = new Datatype[int rowLength, int
columnLength]
� Note: You can increase the no. of commas (,) as many as you want.
Multi-Dimensional Array - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �MultiDimArraysExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MultiDimArraysExample�.
� Click on OK.
Program.cs
using System;
namespace MultiDimArraysExample
class Program
static void Main()
//create multi-dim array
int[,] a = new int[4, 3]
{ 10, 20, 30 },
{ 40, 50, 60 },
{ 70, 80, 90 },
{ 100, 110, 120 }
};
//get first row from multi-dim array
Console.Write(a[0, 0]);
Console.Write(" ");
Console.Write(a[0, 1]);
Console.Write(" ");
Console.WriteLine(a[0, 2]);
//get second row from multi-dim array
Console.Write(a[1, 0]);
Console.Write(" ");
Console.Write(a[1, 1]);
Console.Write(" ");
Console.WriteLine(a[1, 2]);
//get third row from multi-dim array
Console.Write(a[2, 0]);
Console.Write(" ");
Console.Write(a[2, 1]);
Console.Write(" ");
Console.WriteLine(a[2, 2]);
//get fourth row from multi-dim array
Console.Write(a[3, 0]);
Console.Write(" ");
Console.Write(a[3, 1]);
Console.Write(" ");
Console.WriteLine(a[3, 2]);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Introduction to Collections in C#.NET
Limitations of arrays
� Adding or removing elements from array (without a duplicate copy) is not
possible.
� Solution: Use collections.
What are collections
� A collection is a "group of values" of same data type.
� We can add, remove values in the collection anywhere within the program.
� Collections internally use arrays, managed by some pre-defined methods.
� To create collections .net provides a set of collection classes.
� List of collections classes in .NET:
1. System.Collections.Generic.List
2. System.Collections.Generic.Dictionary
3. System.Collections.Generic.SortedList
4. System.Collections.Hashtable
5. System.Collections.ArrayList
Arrays (vs) Collections
Sl. No
Arrays
Collections
Array is treated as an object of
"System.Array" class.
Collection is treated as an object of
collection-based class such as
"System.Collections.Generic.List",
"System.Collections.Generic.Dictionary"
etc.
Doesn�t support adding,
removing elements
dynamically.
Support adding, removing elements
dynamically.
Arrays is old concept.
Collections are recommended and
mostly-used in real time.
If you want to store fixed no. of
values, then use "arrays".
If you want to add or remove elements
later, then use "collections".
The "List" class in .NET
System.Collections.Generic.List
� "List" is a class, in "System.Collections.Generic" namespace.
� This class�s object represents a collection.
� "List" is a collection-based class.
� List is used to store multiple values of same data type.
� We can add or remove elements in the collection dynamically.
� It is a generic class; it has a generic type argument called �T�. That means
you must pass a data type as argument to it, while creating an object.
The "List" class - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ListExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListExample
class Program
static void Main()
//create list collection
List<int> a = new List<int>() { 10, 40, 50, 90, 100 };
//get values from list collection
Console.WriteLine(a[0]);
Console.WriteLine(a[1]);
Console.WriteLine(a[2]);
Console.WriteLine(a[3]);
Console.WriteLine(a[4]);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "List" class � with �for� loop in C#.NET
List with for loop
� We can read elements from a list collection, by using for loop:
� The �for loop� executes once for one element.
� Syntax to read all elements from the list collection, using for
loop:
for (int i = 0; i < collectionname.Count; i++)
Code here
}
The "List" class � with �for� loop - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ListWithForExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListWithForExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListWithForExample
class Program
static void Main()
//create list collection
List<int> a = new List<int>() { 10, 40, 50, 90, 100 };
//get values from list collection using for loop
for (int i = 0; i < a.Count; i++)
Console.WriteLine(a[i]);
}
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "List" class � with �foreach� loop in
C#.NET
List with Foreach loop
� �foreach� loop is used to read all the values from a list collection.
� It executes once for one element in the collection. Each time, the current
element will be stored in the temporary variable.
� Syntax of foreach loop:
foreach (Datatype Variablename in Collectionname)
� But it is used to read all the values of a collection, sequentially. It is not
possible to read some of the values, by using �foreach� loop. It is also not
possible to read the elements randomly or in reverse order.
The "List" class � with �foreach� loop -
Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ListWithForEachExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListWithForEachExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListWithForEachExample
class Program
static void Main()
//create list collection
List<int> a = new List<int>() { 10, 40, 50, 90, 100 };
//get values from list collection using foreach loop
foreach (int item in a)
Console.WriteLine(item);
}
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
"System.Collections.Generic. List.Add"
method in C#.NET
Sl. No
Method
void Add(object value)
This method adds a new value at the end of existing collection.
value: This parameter represents the actual value that is to be added.
"System.Collections.Generic. List.Add"
method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �ListWithAddExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListWithAddExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListWithAddExample
class Program
static void Main()
//create list collection
List<int> a = new List<int>() { 10, 40, 50 };
//get values from list collection
foreach (int item in a)
Console.WriteLine(item);
Console.WriteLine();
//add "100" at the end of list collection
a.Add(100);
//get values from list collection
foreach (int item in a)
Console.WriteLine(item);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
"System.Collections.Generic. List. Insert"
method in C#.NET
Sl. No
Method
void Insert(int index, object value)
This method inserts a new value at the specified index in the existing
collection.
index: This parameter represents the index, where the value is to be
inserted.
value: This parameter represents the actual value that is to be added.
"System.Collections.Generic. List.Insert"
method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �ListWithInsertExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListWithInsertExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListWithInsertExample
class Program
static void Main()
//create list collection
List<int> a = new List<int>() { 10, 40, 50, 150, 200 };
//get values from list collection
foreach (int item in a)
Console.WriteLine(item);
Console.WriteLine();
//insert the value "100" at the position number "2"
a.Insert(2, 100);
//get values from list collection
foreach (int item in a)
Console.WriteLine(item);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
"System.Collections.Generic.
List.AddRange" method in C#.NET
Sl. No
Method
void AddRange(collection)
This method adds an array or collection at the end of existing collection.
collection: This parameter represents the array / collection that is to be
added.
"System.Collections.Generic.
List.AddRange" method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ListWithAddRangeExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListWithAddRangeExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListWithAddRangeExample
class Program
static void Main()
//create list collection
List<int> a = new List<int>() { 10, 40, 50, 150, 200 };
//get values from list collection
foreach (int item in a)
Console.WriteLine(item);
}
Console.WriteLine();
//create another list collection called "extra"
List<int> extra = new List<int>() { 300, 400, 500 };
//add all the elements of "extra" collection at the end of "a" collection
a.AddRange(extra);
//get values from list collection
foreach (int item in a)
Console.WriteLine(item);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
"System.Collections.Generic.
List.InsertRange" method in C#.NET
Sl. No
Method
void InsertRange(int index, collection)
This method inserts an array or collection at the specified index in the
existing collection.
index: This parameter represents the index, where the array / collection is
to be inserted.
collection: This parameter represents the array / collection that is to be
inserted.
"System.Collections.Generic.
List.InsertRange" method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ListWithInsertRangeExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListWithInsertRangeExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListWithInsertRangeExample
class Program
static void Main()
//create list collection
List<int> a = new List<int>() { 10, 40, 50, 150, 200 };
//get values from list collection
foreach (int item in a)
Console.WriteLine(item);
Console.WriteLine();
//create another collection called "extra"
List<int> extra = new List<int>() { 60, 70, 80 };
//insert all the elements of "extra" collection into "a" collection at
position no. "3"
a.InsertRange(3, extra);
//get values from list collection
foreach (int item in a)
Console.WriteLine(item);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
"System.Collections.Generic. List.Remove"
method in C#.NET
Sl. No
Method
void Remove(object value)
This method removes the specified value in the end of existing collection.
value: This parameter represents the value that is to be removed.
"System.Collections.Generic. List.Remove"
method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �ListWithRemoveExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListWithRemoveExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListWithRemoveExample
class Program
static void Main()
//create list collection
List<int> a = new List<int>() { 10, 40, 50 };
//get values from list collection
foreach (int item in a)
Console.WriteLine(item);
Console.WriteLine();
//remove "40" from the list collection
a.Remove(40);
//get values from list collection
foreach (int item in a)
Console.WriteLine(item);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
"System.Collections.Generic.
List.RemoveAt" method in C#.NET
Sl. No
Method
void RemoveAt(int index)
This method removes the existing value at the specified index in the
existing collection.
index: This parameter represents the index, where the value is to be
removed.
"System.Collections.Generic.
List.RemoveAt" method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �ListWithRemoveAtExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListWithRemoveAtExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListWithRemoveAtExample
class Program
static void Main()
//create list collection
List<int> a = new List<int>() { 10, 40, 50, 120, 200 };
//get values from list collection
foreach (int item in a)
Console.WriteLine(item);
Console.WriteLine();
//remove the element at position no. "2" in the collection
a.RemoveAt(2);
//get values from list collection
foreach (int item in a)
Console.WriteLine(item);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
"System.Collections.Generic. List.Clear"
method in C#.NET
Sl. No
Method
void Clear()
This method deletes all the elements in the existing collection.
"System.Collections.Generic. List.Clear"
method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �ListWithClearExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListWithClearExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListWithClearExample
class Program
static void Main()
//create list collection
List<int> a = new List<int> { 10, 20, 50 };
//clear all items in the list collection
a.Clear();
//add new items into the list collection
a.Add(80);
a.Add(120);
a.Add(130);
//get values from list collection
foreach (int item in a)
Console.WriteLine(item);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
"System.Collections.Generic. List.IndexOf"
method in C#.NET
Sl. No
Method
int IndexOf(object value)
This method searches the collection for the given value.
If the value is found, it returns its index.
If the value is not found, it returns -1.
value: This parameter represents the actual value that is to be searched.
The �IndexOf� method performs linear search. That means it searches all
the elements of the collection, until the search value is found. When the
search value is found in the collection, it stops searching and returns its
index.
The linear search has good performance, if the array is small. But if the
collection is larger, "Binary search" is recommended to improve the
performance.
"System.Collections.Generic. List.IndexOf"
method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ListWithIndexOfExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListWithIndexOfExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListWithIndexOfExample
class Program
static void Main()
//create list collection
List<int> a = new List<int>() { 10, 40, 50, 120, 200 };
//search for "50" in the list collection & get its index
int n = a.IndexOf(50);
Console.WriteLine(n);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
"System.Collections.Generic. List.IndexOf"
method � Not Found- Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �ListWithIndexOfNotFoundExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListWithIndexOfNotFoundExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListWithIndexOfNotFound
class Program
static void Main()
//create list collection
List<int> a = new List<int>() { 10, 40, 50, 120, 200 };
//search for "500" in the list collection & get its index
int n = a.IndexOf(500);
Console.WriteLine(n);
Console.ReadKey();
}
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
"System.Collections.Generic.
List.BinarySearch" method in C#.NET
Sl. No
Method
int BinarySearch(object value)
This method searches the collection for the given value.
If the value is found, it returns its index.
If the value is not found, it returns -1.
value: This parameter represents the actual value that is to be searched.
The �BinarySearch� method performs binary search. The �Binary Search�
requires a collection, which is already sorted. On unsorted collection,
binary search is not possible.
Binary search means it directly goes to the middle of the collection
(collection size / 2), and checks that item is less than / greater than the
search value. If that item is greater than the search value, it searches only
in the first half of the collection. If that item is less than the search value, it
searches only in the second half of the collection. Thus it searches only half
of the collection. So in this way, it saves performance.
"System.Collections.Generic.
List.BinarySearch" method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �ListWithBinarySearchExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListWithBinarySearchExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListWithBinarySearchExample
class Program
static void Main()
//list collection with sorted items (values should in a ascending order)
List<int> a = new List<int> { 10, 20, 50, 80, 100 };
//search for "50" in the collection
int n = a.BinarySearch(50);
Console.WriteLine(n);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
"System.Collections.Generic. List.Contains"
method in C#.NET
Sl. No
Method
10
void Contains(object value)
This method searches the collection for the given value.
If the value is found, it returns true.
If the value is not found, it returns false.
value: This parameter represents the actual value that is to be searched.
"System.Collections.Generic. List.Contains"
method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �ListWithContainsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListWithContainsExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListWithContainsExample
class Program
static void Main()
//create list collection
List<int> a = new List<int> { 10, 20, 50, 80, 100 };
//check whether the list has "50" or not
bool b = a.Contains(50);
Console.WriteLine(b);
Console.ReadKey();
}
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
"System.Collections.Generic. List.Reverse"
method in C#.NET
Sl. No
Method
12
void Reverse()
This method reverses the collection.
"System.Collections.Generic. List.Reverse"
method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �ListWithReverseExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListWithReverseExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListWithReverseExample
class Program
static void Main()
//create list collection
List<int> a = new List<int> { 50, 20, 100, 30, 500, 150, 300 };
//reverse the collection
a.Reverse();
//get values from the list collection
foreach (int item in a)
Console.WriteLine(item);
}
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
"System.Collections.Generic. List.Sort"
method in C#.NET
Sl. No
Method
11
void Sort()
This method sorts the collection in ascending order.
"System.Collections.Generic. List.Sort"
method - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �ListWithSortExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListWithSortExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListWithSortExample
class Program
static void Main()
//create list collection
List<int> a = new List<int> { 50, 20, 100, 30, 500, 150, 300 };
//sort collection (in ascending order)
a.Sort();
//get values from list collection
foreach (int item in a)
Console.WriteLine(item);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
System.Collections.Generic. List - Sort
Descending - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �ListWithSortDescendingExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ListWithSortDescendingExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace ListWithSortDescendingExample
class Program
static void Main()
//create list collection
List<int> a = new List<int> { 50, 20, 100, 30, 500, 150, 300 };
//sort collection (in descending order)
a.Sort();
a.Reverse();
//get values from list collection
foreach (int item in a)
{
Console.WriteLine(item);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Collection Filter in .NET
Collection Filter
� To get elements based on the condition, write a foreach loop to iterate
through each element, check the condition and add the matching element
into another collection.
Collection Filter - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �CollectionFilterExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �CollectionFilterExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace CollectionFilterExample
class Program
static void Main()
//create list collection
List<int> a = new List<int> { 50, 27, 105, 34, 55, 80, 100, 133 };
//create an empty new collection
List<int> b = new List<int>();
//read all the elements from "a" collection, check the condition, and
add the matching elements into a new collection called "b"
foreach (int item in a)
{
if (item % 2 == 0)
b.Add(item);
//get values from the new collection
foreach (int item in b)
Console.WriteLine(item);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
LINQ in .NET
LINQ
� LINQ stands for "Language Integrated Query".
� It is a concept to retrieve conditional data from an array or collection & store
the matching elements in another collection.
� Syntax: from variable in collection where condition select
variable;
. The �from clause� represents the variable. Each value from the
collection will be loaded into the variable; and then the where
condition will be checked. If the condition is true, then the value will
be added to the result collection.
. The �in� clause represents the array / collection from which the data
has to be fetched.
. The �where� clause represents the condition to filter the data.
. The �select� clause represents the value that has to be added to the
result collection / array.
LINQ - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �LinqExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �LinqExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
namespace LinqExample
class Program
static void Main()
//create list collection
List<int> a = new List<int> { 50, 27, 105, 34, 55, 80, 100, 133 };
//create an empty new collection
List<int> b = new List<int>();
//read all the elements from "a" collection, check the condition, and
add the matching elements into a new collection called "b" using LINQ
(Language Integrated Query)
b = (from item in a where (item % 2 == 0) select item).ToList();
//get values from the new collection
foreach (int item in b)
Console.WriteLine(item);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Collection of Objects in .NET
Collection of Objects
� An object stores a set of data members.
� A "collection of objects" is a set of objects. Ex: Employees, Students etc.
Collection of Objects - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �CollectionOfObjectsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �CollectionOfObjectsExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace CollectionOfObjectsExample
class Student
public int StudentID { get; set; }
public string StudentName { get; set; }
public int Marks { get; set; }
class Program
static void Main()
//create 4 reference variables for Student class
Student s1, s2, s3, s4;
//create 4 objects for Student class
s1 = new Student() { StudentID = 1, StudentName = "scott", Marks = 40 };
s2 = new Student() { StudentID = 2, StudentName = "allen", Marks = 70 };
s3 = new Student() { StudentID = 3, StudentName = "jones", Marks = 25 };
s4 = new Student() { StudentID = 4, StudentName = "john", Marks = 50 };
//create a collection of "Student" type
List<Student> Students = new List<Student>();
//add objects to collection
Students.Add(s1);
Students.Add(s2);
Students.Add(s3);
Students.Add(s4);
//get objects from the collection
for (int i = 0; i < Students.Count; i++)
Console.Write(Students[i].StudentID);
Console.Write(", ");
Console.Write(Students[i].StudentName);
Console.Write(", ");
Console.WriteLine(Students[i].Marks);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Collection of Objects � Filter - Example
Creating Project
� Open Visual Studio 2015. Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �CollectionOfObjectsFilterExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �CollectionOfObjectsFilterExample�. Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace CollectionOfObjectsFilterExample
class Student
public int StudentID { get; set; }
public string StudentName { get; set; }
public int Marks { get; set; }
class Program
static void Main()
//create 4 reference variables for Student class
Student s1, s2, s3, s4;
//create 4 objects for Student class
s1 = new Student() { StudentID = 1, StudentName = "scott", Marks = 40 };
s2 = new Student() { StudentID = 2, StudentName = "allen", Marks = 25 };
s3 = new Student() { StudentID = 3, StudentName = "jones", Marks = 70 };
s4 = new Student() { StudentID = 4, StudentName = "john", Marks = 32 };
//create collection of Student type and initialize objects into the
collection with collection initializer
List<Student> Students = new List<Student>() { s1, s2, s3, s4 };
//create a new empty collection
List<Student> PassedStudents = new List<Student>();
//read all the objects from "Students" collection, check the condition,
and add matching objects into "PassedStudents" collection
for (int i = 0; i < Students.Count; i++)
Student s;
s = Students[i];
if (s.Marks >= 35)
PassedStudents.Add(s);
//get objects from the "PassedStudents" collection
for (int i = 0; i < PassedStudents.Count; i++)
Student s;
s = PassedStudents[i];
Console.Write(s.StudentID);
Console.Write(", ");
Console.Write(s.StudentName);
Console.Write(", ");
Console.WriteLine(s.Marks);
Console.ReadKey();
}
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Collection of Objects � LINQ - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �CollectionOfObjectsLinqExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �CollectionOfObjectsLinqExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
namespace CollectionOfObjectsLinqExample
class Student
public int StudentID { get; set; }
public string StudentName { get; set; }
public int Marks { get; set; }
class Program
static void Main()
//create a collection of "Student" type and initialize 4 objects
List<Student> Students = new List<Student>()
new Student() { StudentID = 1, StudentName = "scott", Marks = 40 },
new Student() { StudentID = 2, StudentName = "allen", Marks = 25 },
new Student() { StudentID = 3, StudentName = "jones", Marks = 70 },
new Student() { StudentID = 4, StudentName = "john", Marks = 32 }
};
//create a new empty collection
List<Student> PassedStudents = new List<Student>();
//read all the objects from "Students" collection, check the condition,
and add matching objects into a new collection using LINQ
//PassedStudents = (from s in Students where s.Marks >= 35 select
s).ToList();
PassedStudents = Students.Where(s => s.Marks >= 35).ToList();
//get objects from "PasssedStudents" collection
for (int i = 0; i < PassedStudents.Count; i++)
Student s;
s = PassedStudents[i];
Console.Write(s.StudentID);
Console.Write(", ");
Console.Write(s.StudentName);
Console.Write(", ");
Console.WriteLine(s.Marks);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "Dictionary" class in .NET
System.Collections.Generic.Dictionary
� "Dictionary" is a pre-defined class in "System.Collections.Generic"
namespace.
� Dictionary is used to store a set of pairs of key and values.
� Example:
Key
Value
Maths
60
Physics
70
Chemistry
80
� It is also generic class that receives two data types; one is for key; other one
is for value.
� We can get the value based on the key, rather than based on index.
The "Dictionary" class - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DictionaryExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DictionaryExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace DictionaryExample
class Program
static void Main()
//create reference variable for dictionary collection
Dictionary<string, int> Marks;
//create object for dictionary collection
Marks = new Dictionary<string, int>();
//add items (keys and values)
Marks.Add("Maths", 86);
Marks.Add("Physics", 67);
Marks.Add("Chemistry", 78);
//get value based on key
int m = Marks["Physics"];
Console.WriteLine(m);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "SortedList" class in .NET
System.Collections.Generic.SortedList
� "SortedList" is a pre-defined class in "System.Collections.Generic"
namespace.
� SortedList is also used to store a set of pairs of key and values.
� It is also generic class that receives two data types; one is for key, other one
is for value.
� It automatically sorts the data while adding elements itself. So that it will be
faster while retrieving the values.
� We can get the value based on the key, rather than based on index.
The "SortedList" class - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �SortedListExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �SortedListExample�.
� Click on OK.
Program.cs
using System;
using System.Collections.Generic;
namespace SortedListExample
class Program
static void Main()
//create reference variable for SortedList collection
SortedList<string, int> Marks;
//create object for SortedList collection
Marks = new SortedList<string, int>();
//add items (keys and values)
Marks.Add("Maths", 86);
Marks.Add("Physics", 67);
Marks.Add("Chemistry", 78);
//get value based on the key
int m = Marks["Physics"];
Console.WriteLine(m);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "Hashtable" class in .NET
System.Collections.Hashtable
� "Hashtable" is a pre-defined class in "System.Collections" namespace.
� Hashtable is similar to Dictionary, but no need to specify the data types for
key and value; so that the key and value can be of any data type.
� It is not a generic class.
� We can get the value based on the key, rather than based on index.
The "Hashtable" class - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �HashtableExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �HashtableExample�.
� Click on OK.
Program.cs
using System;
using System.Collections;
namespace HashtableExample
class Program
static void Main()
//create reference variable for Hashtable collection
Hashtable Marks;
//create object for Hashtable collection
Marks = new Hashtable();
//add items (keys and values)
Marks.Add("Maths", 86);
Marks.Add("Physics", 67);
Marks.Add("Chemistry", 78);
Marks.Add("StudentName", "scott");
Marks.Add("IsRegistered", true);
//get value based on the key
int m = Convert.ToInt32(Marks["Physics"]);
Console.WriteLine(m);
//get value based on the key (another example)
bool b = Convert.ToBoolean(Marks["IsRegistered"]);
Console.WriteLine(b);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "ArrayList" class in .NET
System.Collections.ArrayList
� "ArrayList" is a pre-defined class in "System.Collections" namespace.
� It is similar to List, but no need to specify the data type for value; so that
the
value can be of any data type.
� It is also not a generic class.
The "ArrayList" class - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ArrayListExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ArrayListExample�.
� Click on OK.
Program.cs
using System;
using System.Collections;
namespace ArrayListExample
class Program
static void Main()
//create reference variable for ArrayList collection
ArrayList MyData;
//create object for ArrayList collection
MyData = new ArrayList();
//add items
MyData.Add(100);
MyData.Add(100.2398);
MyData.Add("hyderabad");
MyData.Add(true);
MyData.Add(DateTime.Now);
//get items from the ArrayList collection
for (int i = 0; i < MyData.Count; i++)
Console.WriteLine(MyData[i]);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "typeof" operator in .NET
"typeof" operator:
� The "typeof" operator is used to check the data type of a value.
� Syntax: typeof (data type name)
The "typeof" operator - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �TypeofExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �TypeofExample�.
� Click on OK.
Program.cs
using System;
using System.Collections;
namespace TypeofExample
class Program
static void Main()
//create reference variable for ArrayList collection
ArrayList MyData;
//create object for ArrayList collection
MyData = new ArrayList();
//add items
MyData.Add(100);
MyData.Add(150);
MyData.Add(100.2398);
MyData.Add("hyderabad");
MyData.Add(true);
MyData.Add(DateTime.Now);
//get items from the ArrayList collection
for (int i = 0; i < MyData.Count; i++)
if (MyData[i].GetType() == typeof(int))
int n = Convert.ToInt32(MyData[i]);
Console.WriteLine(n);
else if (MyData[i].GetType() == typeof(double))
double n = Convert.ToDouble(MyData[i]);
Console.WriteLine(n);
else if (MyData[i].GetType() == typeof(string))
string n = Convert.ToString(MyData[i]);
Console.WriteLine(n);
else if (MyData[i].GetType() == typeof(bool))
bool n = Convert.ToBoolean(MyData[i]);
Console.WriteLine(n);
else if (MyData[i].GetType() == typeof(DateTime))
{
DateTime n = Convert.ToDateTime(MyData[i]);
Console.WriteLine(n);
}
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.String" class in C#.NET (or)
String Handling in C#.NET
The �System.String� class
� In .NET, every string literal (a group of characters with double quotes) is
automatically treated as an object for "System.String" class.
� The �System.String� class provides a set of properties and methods to
manipulate strings.
Properties of �System.String� class:
1) int Length
. It returns the no. of characters in the string.
Methods of �System.String� class:
1) string ToUpper()
. It returns the string in upper case.
2) string ToLower()
. It returns the string in lower case.
3) char [int index]
. It returns the character at specified index.
4) string Substring(int startIndex)
. It returns the part of the string, starting from specified index,
up to end of the string.
5) string Substring(int startIndex, int length)
. It returns the part of the string, starting from specified index,
the specified no. of characters.
6) string Remove(int index)
. It removes the part of the string, starting from specified index,
up to end of the string, and returns the remaining string.
7) string Remove(int index, int length)
. It removes the part of the string, starting from specified index,
up to specified length, and returns the remaining string.
8) string Insert(int index, string value)
. It inserts the given string value in the main string at the
specified index and returns the result string.
9) bool Equals(string value)
. It compares the main string and string value, whether those
are equal or not. It returns true if the both are equal. It returns
false if both are not equal.
10) bool Equals(string value,
StringComparison.OrdinalIgnoreCase)
. Same as �Equals� method, but it ignores the case (upper case /
lower case).
11) bool StartsWith(string value)
. It returns true if the given value exists at the beginning of
string. It returns false if the give value exists at the beginning
of string.
12) bool EndsWith(string value)
. It returns true if the given value exists at the ending of string.
It returns false if the give value not exists at the ending of
string.
13) bool Contains(string value)
. It returns true if the given value exists in the string. It returns
false if the given value exists in the string.
14) int IndexOf(string value)
. It searches and returns the index of first character of given
value in the string. It returns -1 if is not found.
15) int IndexOf(string value, int startIndex)
. It is same as previous method, but searching starts from
specified startIndex.
16) int LastIndexOf(string value, int startIndex)
. It is same as IndexOf() method, but searching starts from end
of the string. (searching will be done from right-to-left).
17) string Replace(string oldValue, string newValue)
. It replaces each occurrence of oldValue with newValue and
returns it.
18) char[ ] ToCharArray()
. It converts and returns the string as a character array.
19) string[ ] Split(char separator)
. It splits the string into small strings on each occurrence of
given separator and returns all small strings as a string array.
20) string Trim()
. It returns the un-necessary spaces at the beginning and ending
of the string; and it returns the final string.
21) static string Format(string format, object arg0, object
arg1, �)
. It substitutes place holders with the arguments, and returns
the final string. It is a static method.
Note: No string method modifies the existing string object. It creates a
new string object, stores the result string in it and returns the same
string object.
�System.String.Length� - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �LengthExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �LengthExample�.
� Click on OK.
Program.cs
using System;
namespace LengthExample
class Program
static void Main()
//create a string
string s = "Hyderabad";
//get length (no. of characters in the string)
int len = s.Length;
//display length (no. of characters in the string)
Console.WriteLine(len); //Output: 9
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.ToUpper� - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �ToUpperExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ToUpperExample�.
� Click on OK.
Program.cs
using System;
namespace ToUpperExample
class Program
static void Main()
//create a string
string s = "Hyderabad";
//convert the string into upper case
string s2 = s.ToUpper();
//display
Console.WriteLine(s); //Output: Hyderabad
Console.WriteLine(s2); //Output: HYDERABAD
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.ToLower� - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ToLowerExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ToLowerExample�.
� Click on OK.
Program.cs
using System;
namespace ToLowerExample
class Program
static void Main()
//create a string
string s = "HYDERABAD";
//convert into lower case
string s2 = s.ToLower();
//display
Console.WriteLine(s); //Output: HYDERABAD
Console.WriteLine(s2); //Output: hyderabad
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.GetChar� - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �GetCharExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �GetCharExample�.
� Click on OK.
Program.cs
using System;
namespace GetCharExample
class Program
static void Main()
//create a string
string s = "Hyderabad";
//get the character at index no. "4".
char ch = s[4];
//display
Console.WriteLine(ch); //Output: r
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.Substring� � Example 1
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �SubstringExample1�.
� Type the location as �C:\CSharp�.
� Type the solution name as �SubstringExample1�.
� Click on OK.
Program.cs
using System;
namespace SubstringExample1
class Program
static void Main()
//create a string
string s = "Hyderabad";
//get sub string (from 4th character - till end of the string)
string s2 = s.Substring(4);
//display
Console.WriteLine(s2); //Output: rabad
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.Substring� � Example 2
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �SubstringExample2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �SubstringExample2�.
� Click on OK.
Program.cs
using System;
namespace SubstringExample2
class Program
static void Main()
//create a string
string s = "hyderabad";
//get sub string (from 4th character - only 2 characters length)
string s2 = s.Substring(4, 2);
//display
Console.WriteLine(s2); //Output: ra
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.Remove� � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �RemoveExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �RemoveExample�.
� Click on OK.
Program.cs
using System;
namespace RemoveExample
class Program
static void Main()
//create string & integer
string s = "Hyderabad";
int ind = 4;
//remove part of the string, starting from index "4" - till the end of
string & return the remaining part of the string.
string s2 = s.Remove(ind);
//display
Console.WriteLine(s2); //Output: Hyde
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.Remove� � Example 2
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �RemoveExample2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �RemoveExample2�.
� Click on OK.
Program.cs
using System;
namespace RemoveExample2
class Program
static void Main()
//create string & integers
string s = "Hyderabad";
int ind = 4;
int len = 3;
//remove part of the string, starting from index "4" - upto "3"
characters length & get the remaining part of the string
string s2 = s.Remove(ind, len);
//display
Console.WriteLine(s2); //Output: Hydead
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.Insert� � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �InsertExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �InsertExample�.
� Click on OK.
Program.cs
using System;
namespace InsertExample
class Program
static void Main()
//create strings & integer
string s = "Hyderabad";
string s2 = "abc";
int ind = 4;
//insert "abc" in "Hyderabad" at index no. 4
string s3 = s.Insert(ind, s2);
//display
Console.WriteLine(s3); //Output: Hydeabcrabad
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.Equals� � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �EqualsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �EqualsExample�.
� Click on OK.
Program.cs
using System;
namespace EqualsExample
class Program
static void Main()
//create strings
string s1 = "Hyderabad";
string s2 = "Hyderabad";
//check whether s2 is equal to s1 or not
bool b = s1.Equals(s2);
//display
Console.WriteLine(b); //Output: True
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.StringComparison.
OrdinalIgnoreCase� � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �IgnoreCaseExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �IgnoreCaseExample�.
� Click on OK.
Program.cs
using System;
namespace IgnoreCaseExample
class Program
static void Main()
//create strings
string s1 = "Hyderabad";
string s2 = "hyderabad";
//check whether s2 is equal to s1 or not, ignoring case
bool b = s1.Equals(s2, StringComparison.OrdinalIgnoreCase);
//display
Console.WriteLine(b); //Output: True
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.StartsWith� � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �StartsWithExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �StartsWithExample�.
� Click on OK.
Program.cs
using System;
namespace StartsWithExample
class Program
static void Main()
//create strings
string s = "hyderabad";
string s2 = "hyd";
//check whether "hyderabad" starting with "hyd" or not
bool b = s.StartsWith(s2);
Console.WriteLine(b); //Output: True
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.EndsWith� � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �EndsWithExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �EndsWithExample�.
� Click on OK.
Program.cs
using System;
namespace EndsWithExample
class Program
static void Main()
//create strings
string s = "hyderabad";
string s2 = "bad";
//check whether "hyderabad" ending with "bad" or not
bool b = s.EndsWith(s2);
Console.WriteLine(b); //Output: True
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.Contains� � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ContainsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ContainsExample�.
� Click on OK.
Program.cs
using System;
namespace ContainsExample
class Program
static void Main()
//create strings
string s = "Hyderabad";
string s2 = "dera";
//check whether "Hyderabad" contains "dera" or not
bool b = s.Contains(s2);
//display
Console.WriteLine(b); //Output: True
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.IndexOf� � Example 1
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �IndexOfExample1�.
� Type the location as �C:\CSharp�.
� Type the solution name as �IndexOfExample1�.
� Click on OK.
Program.cs
using System;
namespace IndexOfExample1
class Program
static void Main()
//create strings
string s = "Hyderabad";
string s2 = "dera";
//get the index of "dera" in "Hyderabad"
int ind = s.IndexOf(s2);
//display
Console.WriteLine(ind); //2
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.IndexOf� � Example 2
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �IndexOfExample2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �IndexOfExample2�.
� Click on OK.
Program.cs
using System;
namespace IndexOfExample2
class Program
static void Main()
//create strings
string s = "hyderabad";
string s2 = "a";
//get the index of "a" in "hyderabad" - first occurrence
int ind1 = s.IndexOf(s2);
Console.WriteLine(ind1); //5
//get the index of "a" in "hyderabad" - second occurrence
int ind2 = s.IndexOf(s2, ind1+1);
Console.WriteLine(ind2); //7
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.IndexOf� � Example 3
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �IndexOfExample3�.
� Type the location as �C:\CSharp�.
� Type the solution name as �IndexOfExample3�.
� Click on OK.
Program.cs
using System;
namespace IndexOfExample3
class Program
static void Main()
//create strings
string s = "Hyderabad";
string s2 = "xyz";
//get the index of "xyz" in "Hyderabad". As it is not found, it returns -1
int ind = s.IndexOf(s2);
//display
Console.WriteLine(ind); //Output: -1
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.LastIndexOf� � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �LastIndexOfExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �LastIndexOfExample�.
� Click on OK.
Program.cs
using System;
namespace LastIndexOfExample
class Program
static void Main()
//create strings
string s = "Hyderabad";
string s2 = "a";
//get the last index of "a" in "Hyderabad" - Last occurrence
int ind = s.LastIndexOf(s2);
//display
Console.WriteLine(ind); //7
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.Replace� � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ReplaceExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ReplaceExample�.
� Click on OK.
Program.cs
using System;
namespace ReplaceExample
class Program
static void Main()
//create strings
string s = "Apple Smart Phones";
string s2 = "Apple";
string s3 = "Samsung";
//replace "Apple" with "Samsung"
string s4 = s.Replace(s2, s3);
Console.WriteLine(s4); //Output: Samsung Smart Phones
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.ToCharArray� � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �ToCharArrayExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ToCharArrayExample�.
� Click on OK.
Program.cs
using System;
namespace ToCharArrayExample
class Program
static void Main()
//create string
string s = "hyderabad";
//convert "string" into "character array"
char[ ] ch = s.ToCharArray();
//read each character from the "character array" using for loop
for (int i = 0; i < ch.Length; i++)
Console.WriteLine(ch[i]);
}
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Converting CharArray to String - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �CharArrayToStringExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �CharArrayToStringExample�.
� Click on OK.
Program.cs
using System;
namespace CharArrayToStringExample
class Program
static void Main()
//create character array
char[ ] ch = new char[9] { 'H', 'y', 'd', 'e', 'r', 'a', 'b', 'a', 'd' };
//convert character array to string
string s = new String(ch);
//display string
Console.WriteLine(s); //Output: Hyderabad
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.Split� � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �SplitExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �SplitExample�.
� Click on OK.
Program.cs
using System;
namespace SplitExample
class Program
static void Main()
//create string and character
string s = "Hyderabad is one of the cities in India";
char ch = ' ';
//convert the "string" into "string array" at each occurrence of " "
(space)
string[ ] s2 = s.Split(ch);
//read and display each element from the string array
for (int i = 0; i < s2.Length; i++)
{
Console.WriteLine(s2[i]);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.Trim� � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �TrimExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �TrimExample�.
� Click on OK.
Program.cs
using System;
namespace TrimExample
class Program
static void Main()
//create string
string s = " Hyderabad ";
//get no. of characters
int len1 = s.Length;
Console.WriteLine(s); //Output: " Hyderabad "
Console.WriteLine(len1); //Output: 16
Console.WriteLine();
//trim the string (remove extra spaces at "most left side" and "most
right side")
string s2 = s.Trim();
int len2 = s2.Length;
Console.WriteLine(s2); //Output: "Hyderabad"
Console.WriteLine(len2); //Output: 9
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.Format� � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �FormatExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �FormatExample�.
� Click on OK.
Program.cs
using System;
namespace FormatExample
class Program
static void Main()
//create strings
string s1 = "scott";
string s2 = "allen";
string original = "{0} and {1} are now friends";
//Substitute "scott" in {0} place and "allen" in {1} place.
string final = string.Format(original, s1, s2);
Console.WriteLine(final); //Output: scott and allen are now friends.
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.String.Reverse� � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ReverseExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ReverseExample�.
� Click on OK.
Program.cs
using System;
namespace ReverseExample
class Program
static void Main()
//create strings
string s = "hyderabad";
string s2 = "";
//read each character using for loop and append it to a new string
for (int i = s.Length - 1; i >= 0; i--)
s2 = s2 + s[i];
}
Console.WriteLine(s2); //dabaredyh
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
String � WordsCount - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �WordsCountExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �WordsCountExample�.
� Click on OK.
Program.cs
using System;
namespace WordsCountExample
class Program
static void Main()
//create a string
string s = "She sells sea shells on the sea shore";
//create counter variable
int c = 0;
//read each character and check it whether the character is " " (space)
or not. If it is space, increment the counter variable
for (int i = 0; i < s.Length; i++)
{
if (s[i] == ' ')
c++;
//increment the counter variable
if (s.Length >=1)
c++;
Console.WriteLine(c); //Output: 8
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
String � Character Occurrence Count -
Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �CharacterOccurrenceCountExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �CharacterOccurrenceCountExample�.
� Click on OK.
Program.cs
using System;
namespace CharacterOccurrenceCountExample
class Program
static void Main()
//create a string
string s = "She sells sea shells on the sea shore";
//create a character
char ch = 's';
//create a counter variable
int c = 0;
//read each character and check whether the character matches or
not. If matches, increment the counter variable
for (int i = 0; i < s.Length; i++)
if (s[i] == ch)
c++;
Console.WriteLine(c); //Output: 7
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
String � Alphabetic Count - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �AlphabetsCountExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �AlphabetsCountExample�.
� Click on OK.
Program.cs
using System;
namespace AlphabetsCountExample
class Program
static void Main()
//create a string
string s = "She sells sea shells on the sea shore";
//create a counter variable
int c = 0;
//read each character and check whether it is alphabet or not, using
ASCII code
for (int i = 0; i < s.Length; i++)
if ( (s[i] >=65 && s[i] <=90) || (s[i] >=97 && s[i] <=122) )
c++;
Console.WriteLine(c); //Output: 30
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
String � Word Occurrence Count - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �WordOccurrenceCountExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �WordOccurrenceCountExample�.
� Click on OK.
Program.cs
using System;
namespace WordOccurrenceCountExample
class Program
static void Main()
//create strings
string s = "She sells sea shells on the sea shore";
string s2 = "sea";
//create a counter variable
int c = 0;
//read each character
for (int i = 0; i < s.Length; i++)
{
//check whether the chracter matches with the first character of
"s2".
if (s[i] == s2[0] && (i + s2.Length) <= s.Length)
bool flag = true;
//check for remaining characters of "s2".
for (int j = i, k = 0; k < s2.Length; j++, k++)
if (s[j] != s2[k])
flag = false;
//if all the chracters are matched, increment the counter variable
if (flag == true)
c++;
Console.WriteLine(c); //Output: 2
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
String � Title Case - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �TitleCaseExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �TitleCaseExample�.
� Click on OK.
Program.cs
using System;
namespace TitleCaseExample
class Program
static void Main()
//create strings
string s = "she sells sea shells on the sea shore";
string s2 = "";
char ch = ' ';
//split the string into "string array" at each occurrence of space.
string[ ] words = s.Split(ch);
//converting into "Title Case" (Every word starts with capital letter).
for (int i = 0; i < words.Length; i++)
{
s2 += words[i][0].ToString().ToUpper() +
words[i].Substring(1).ToLower() + " ";
//remove unnecessary spaces
s2 = s2.Trim();
Console.WriteLine(s2); //Output: She Sells Sea Shells On The Sea
Shore
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
String � Currency into words - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �CurrencyIntoWordsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �CurrencyIntoWordsExample�.
� Click on OK.
Program.cs
using System;
using System.Text;
namespace CurrencyIntoWordsExample
class Program
static void Main()
//actual number that is to be converted into currency
int number = 1234;
//create string
string result;
//check whether the number is zero
if (number == 0)
{
result = "Zero";
goto end;
//create integer array
int[ ] num = new int[4];
int first = 0;
int u, h, t;
//create stringbuilder
StringBuilder sb = new StringBuilder();
//check whether the number is negetive
if (number < 0)
sb.Append("Minus ");
number = -number;
//create string arrays
string[ ] words0 = {"" ,"One ", "Two ", "Three ", "Four ", "Five " ,"Six ",
"Seven ", "Eight ", "Nine "};
string[ ] words1 = {"Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ",
"Fifteen ","Sixteen ","Seventeen ","Eighteen ", "Nineteen "};
string[ ] words2 = {"Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ",
"Seventy ","Eighty ", "Ninety "};
string[ ] words3 = { "Thousand ", "Lakh ", "Crore " };
num[0] = number % 1000; // units
num[1] = number / 1000;
num[2] = number / 100000;
num[1] = num[1] - 100 * num[2]; // thousands
num[3] = number / 10000000; // crores
num[2] = num[2] - 100 * num[3]; // lakhs
for (int i = 3; i > 0; i--)
if (num[i] != 0)
first = i;
break;
for (int i = first; i >= 0; i--)
if (num[i] == 0) continue;
u = num[i] % 10; // ones
t = num[i] / 10;
h = num[i] / 100; // hundreds
t = t - 10 * h; // tens
if (h > 0) sb.Append(words0[h] + "Hundred ");
if (u > 0 || t > 0)
if ((h > 0 || i == 0) && (number.ToString().Length > 3))
sb.Append("and ");
if (t == 0)
sb.Append(words0[u]);
else if (t == 1)
sb.Append(words1[u]);
else
sb.Append(words2[t - 2] + words0[u]);
if (i != 0) sb.Append(words3[i - 1]);
}
result = sb.ToString().TrimEnd();
end:
Console.WriteLine(number);
Console.WriteLine(result);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
String � Multiple Concatenations - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MultipleConcatenationsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MultipleConcatenationsExample�.
� Click on OK.
Program.cs
using System;
namespace MultipleConcatenationsExample
class Program
static void Main()
//create strings
string s1, s2, s3, s4, result;
s1 = "Hello "; //string object 1
s2 = "how "; //string object 2
s3 = "are "; //string object 3
s4 = "you"; //string object 4
//concatenations
result = s1;
result = result + s2; //string object 5
result = result + s3; //string object 6
result = result + s4; //string object 7
Console.WriteLine(result); //Output: Hello how are you
Console.ReadKey();
//Total no. of objects created in the program = 7
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.Text.StringBuilder" class in
C#.NET
System.Text.StringBuilder
� �StringBuilder� is a pre-defined class in �System.Text� namespace.
� This class�s object represents an appendable string.
� The string builder can be appendable any no. of times, without creating a
separate object.
� String concatenation always creates a new object for �System.String� class;
but string builder allows the value to be appended any no. of times. So
string builder saves memory when compared with string concatenation, in
case of many appendings.
Steps for development of StringBuilder:
� Import the namespace:
. using System.Text;
� Create a reference variable:
. StringBuilder sb;
� Create an object for StringBuilder class:
. sb = new StringBuilder();
� Append string:
. sb.Append(string value);
� Convert the stringbuilder to string:
. sb.ToString();
The "System.Text.StringBuilder" class -
Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �StringBuilderExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �StringBuilderExample�.
� Click on OK.
Program.cs
using System;
using System.Text;
namespace StringBuilderExample
class Program
static void Main()
//create strings
string s1, s2, s3, s4;
s1 = "Hello "; //string object 1
s2 = "how "; //string object 2
s3 = "are "; //string object 3
s4 = "you"; //string object 4
//create reference variable
StringBuilder result;
//create object for StringBuilder class
result = new StringBuilder();
//append strings to the stringbuilder
result.Append(s1);
result.Append(s2);
result.Append(s3);
result.Append(s4);
Console.WriteLine(result.ToString()); //Output: Hello how are you
Console.ReadKey();
//Total no. of objects created in the program = 4
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.DateTime" structure in C#.NET
(or) Date & Time Handling in C#.NET
The �System.DateTime� structure
� .NET provides a pre-defined structure called �DateTime�, to store and
manipulate date & time.
� �DateTime� is a structure; �System� is a namespace.
� The �DateTime� structure provides several properties and methods to
perform manipulations on date and time.
Properties of �System.DateTime� structure:
1) DateTime Now
. It returns the current system date and time.
2) int Day
. It returns the current day. (1 to 31).
3) int Month
. It returns the current month. (1 to 12).
4) int Year
. It returns the current year. (1 to 12).
5) int Hour
. It returns the current hour.
6) int Minute
. It returns the current minute.
7) int Second
. It returns the current second.
8) int MilliSecond
. It returns the current milli second.
9) string DayOfWeek.ToString()
. It returns the day name of the week.
10) int DayOfYear
. It returns the current day�s index in the current year.
Methods of �System.DateTime� structure:
11) string ToShortDateString()
. It returns the date in the following format: M/d/yyyy
12) string ToLongDateString()
. It returns the date in the following format: dddd, MMMM dd, yyyy
13) string ToShortTimeString()
. It returns the time in the following format: h:m tt
14) string ToLongTimeString()
. It returns the time in the following format: h:mm:ss tt
15) string ToString(�format�)
. It returns the date / time in the desired format.
16) TimeSpan Subtract(DateTime dt2)
. It subtracts the main date with given dt2, and returns the difference
dates in the form of TimeSpan.
17) DateTime AddDays(int n)
. It adds the �n� no. of days to the main date and returns the result date.
The "System.DateTime" � First Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �DateTimeFirstExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DateTimeFirstExample�.
� Click on OK.
Program.cs
using System;
namespace DateTimeFirstExample
class Program
static void Main()
//create a variable of DateTime data type
DateTime d;
//set value
d = Convert.ToDateTime("2/10/2016 5:30 PM");
//get value
Console.WriteLine(d);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.DateTime.Now" �Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �NowExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �NowExample�.
� Click on OK.
Program.cs
using System;
namespace NowExample
class Program
static void Main()
//create a variable of DateTime data type
DateTime d;
//set system date and time into the variable
d = DateTime.Now;
//get value
Console.WriteLine(d);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.DateTime" � Inner Values �
Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �InnerValuesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �InnerValuesExample�.
� Click on OK.
Program.cs
using System;
namespace InnerValuesExample
class Program
static void Main()
//create a variable of DateTime data type
DateTime d;
//set system date and time into the variable
d = DateTime.Now;
//get individual values
int dy = d.Day;
int m = d.Month;
int y = d.Year;
int h = d.Hour;
int mi = d.Minute;
int s = d.Second;
int ms = d.Millisecond;
//display values
Console.WriteLine("Day: " + dy);
Console.WriteLine("Month: " + m);
Console.WriteLine("Year: " + y);
Console.WriteLine();
Console.WriteLine("Hour: " + h);
Console.WriteLine("Minute:" + mi);
Console.WriteLine("Second: " + s);
Console.WriteLine();
Console.WriteLine("Milli Second: " + ms);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.DateTime.DayOfWeek" �
Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �DayOfWeekExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DayOfWeekExample�.
� Click on OK.
Program.cs
using System;
namespace DayOfWeekExample
class Program
static void Main()
//create variable of DateTime data type
DateTime d;
//set system date and time into the variable
d = DateTime.Now;
//get name of the day of week
string str = d.DayOfWeek.ToString();
Console.WriteLine(str);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.DateTime.DayOfYear" �
Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DayOfYearExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DayOfYearExample�.
� Click on OK.
Program.cs
using System;
namespace DayOfYearExample
class Program
static void Main()
//create variable of DateTime data type
DateTime d;
//set system date and time into the variable
d = DateTime.Now;
//get no. of the day in the current year (1 to 365)
int n = d.DayOfYear;
Console.WriteLine(n);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.DateTime. ToShortDateString"
� Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �ShortDateExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ShortDateExample�.
� Click on OK.
Program.cs
using System;
namespace ShortDateExample
class Program
static void Main()
//create variable of DateTime data type
DateTime d;
//set system date and time into the variable
d = DateTime.Now;
//get short date
string str = d.ToShortDateString();
Console.WriteLine(str);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.DateTime. ToLongDateString" �
Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �LongDateExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �LongDateExample�.
� Click on OK.
Program.cs
using System;
namespace LongDateExample
class Program
static void Main()
//create a variable of DateTime data type
DateTime d;
//set system date and time into the variable
d = DateTime.Now;
//get long date
string str = d.ToLongDateString();
Console.WriteLine(str);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.DateTime. ToShortTimeString"
� Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ShortTimeExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ShortTimeExample�.
� Click on OK.
Program.cs
using System;
namespace ShortTimeExample
class Program
static void Main()
//create a variable of DateTime data type
DateTime d;
//set system date and time into the variable
d = DateTime.Now;
//get short time
string str = d.ToShortTimeString();
Console.WriteLine(str);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.DateTime. ToLongTimeString" �
Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �LongTimeExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �LongTimeExample�.
� Click on OK.
Program.cs
using System;
namespace LongTimeExample
class Program
static void Main()
//create a variable of DateTime data type
DateTime d;
//set system date and time into the variable
d = DateTime.Now;
//get long time
string str = d.ToLongTimeString();
Console.WriteLine(str);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.DateTime" � Custom Formats �
Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �CustomFormatsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �CustomFormatsExample�.
� Click on OK.
Program.cs
using System;
namespace CustomFormatsExample
class Program
static void Main()
//create a variable of DateTime data type
DateTime d;
//set system date and time into the variable
d = DateTime.Now;
//get custom formats
string str1 = d.ToString("d/M/yyyy");
string str2 = d.ToString("yyyy/M/d");
string str3 = d.ToString("h:m:s");
//display values
Console.WriteLine("d/M/yyyy: " + str1);
Console.WriteLine("yyyy/M/d: " + str2);
Console.WriteLine("h:m:s: " + str3);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.DateTime.Subtract" � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �SubstractExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �SubtractExample�.
� Click on OK.
Program.cs
using System;
namespace SubtractExample
class Program
static void Main()
//create variables of DateTime data type
DateTime dt1, dt2;
dt1 = DateTime.Now;
dt2 = Convert.ToDateTime("7/8/2011"); ;
//subtract dt2 from dt1 (get the no. of days between 7/8 /2011 till
date)
TimeSpan ts;
ts = dt1.Subtract(dt2);
//display the no. of days difference between dt1 and dt2 (dt1 - dt2)
string msg = ts.TotalDays + " days";
Console.WriteLine(msg);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.DateTime.AddDays" � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �AddDaysExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �AddDaysExample�.
� Click on OK.
Program.cs
using System;
namespace AddDaysExample
class Program
static void Main()
//create a variable of DateTime data type
DateTime d;
//set system date and time into the variable
d = DateTime.Now;
//add 10 days
DateTime temp = d.AddDays(10);
Console.WriteLine(temp);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.Math" class in C#.NET
The �System.Math� class
� .NET provides a pre-defined class called �Math�, to store perform
mathematical manipulations.
� �Math� is a class; �System� is a namespace.
� �Math� is a static class; so all of its members are �static members�.
Methods of �System.Math� class:
1) double Abs(double value)
. It returns the absolute value (positive value) of given number.
2) double Floor(double value)
. It returns the number without decimal part.
3) double Ceiling(double value)
. It returns the next number without decimal part.
4) double Round(double value)
. It returns the current number without decimal part, if the first
digit of the decimal part is less than 5.
. It returns the next number without decimal part, if the first digit
of the decimal part is greater than or equal to 5.
5) double Max(double n1, double n2)
. It returns the big number.
6) double Min(double n1, double n2)
. It returns the small number.
7) double Pow(double n1, double n2)
. It returns n1 power n2.
8) double Sqrt(double n)
. It returns the square root of �n�.
The "System.Math.Abs" �Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �AbsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �AbsExample�.
� Click on OK.
Program.cs
using System;
namespace AbsExample
class Program
static void Main()
double n = -100;
double result;
//convert the negetive value into positive value
result = Math.Abs(n);
Console.WriteLine(n);
Console.WriteLine(result);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.Math.Floor" �Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �FloorExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �FloorExample�.
� Click on OK.
Program.cs
using System;
namespace FloorExample
class Program
static void Main()
double n = 100.3492;
double result;
//get the floor value (without decimal part)
result = Math.Floor(n);
Console.WriteLine(n);
Console.WriteLine(result);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.Math.Ceiling" � Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �CeilingExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �CeilingExample�.
� Click on OK.
Program.cs
using System;
namespace CeilingExample
class Program
static void Main()
double n = 100.3492;
double result;
//get the next integer value
result = Math.Ceiling(n);
Console.WriteLine(n);
Console.WriteLine(result);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.Math.Round" � Example 1
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �RoundExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �RoundExample�.
� Click on OK.
Program.cs
using System;
namespace RoundExample
class Program
static void Main()
double n = 100.3492;
double result;
//get the next number if the first digit in decimal part is greater than
or equal to "5"; get the previous number if the first digit in decimal part is
less than "5".
result = Math.Round(n);
Console.WriteLine(n);
Console.WriteLine(result);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.Math.Round" � Example 2
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �RoundExample2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �RoundExample2�.
� Click on OK.
Program.cs
using System;
namespace RoundExample2
class Program
static void Main()
double n = 100.6492;
double result1, result2;
result1 = Math.Round(n);
result2 = Math.Round(n, 2);
Console.WriteLine(result1);
Console.WriteLine(result2);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.Math.Max" �Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MaxExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MaxExample�.
� Click on OK.
Program.cs
using System;
namespace MaxExample
class Program
static void Main()
double n1 = 100, n2 = 200;
double result;
//get the big value among n1 and n2
result = Math.Max(n1, n2);
Console.WriteLine(result);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.Math.Min" �Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MinExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MinExample�.
� Click on OK.
Program.cs
using System;
namespace MinExample
class Program
static void Main()
double n1 = 100, n2 = 200;
double result;
//get the smaller value among n1 and n2
result = Math.Min(n1, n2);
Console.WriteLine(result);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.Math.Pow" �Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �PowExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �PowExample�.
� Click on OK.
Program.cs
using System;
namespace PowExample
class Program
static void Main()
double n1 = 10, n2 = 3;
double result;
//get the result of "10" power "3"
result = Math.Pow(n1, n2);
Console.WriteLine(result);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The "System.Math.Sqrt" �Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �SqrtExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �SqrtExample�.
� Click on OK.
Program.cs
using System;
namespace SqrtExample
class Program
static void Main()
double n = 10;
double result;
//get square root of 10
result = Math.Sqrt(n);
Console.WriteLine(result);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
�System.Diagnostics.Process� class in
C#.NET
System.Diagnostics.Process
� �Process� is a pre-defined class in �System.Diagnostics� namespace.
� This class�s object represents an exe file (executable file).
� �Process� class is used to run an exe file.
� We can pass parameters to the exe file.
Syntax: System.Diagnostics.Process.Start("exe file path",
parameters);
�System.Diagnostics.Process� class -
Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ProcessExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ProcessExample�.
� Click on OK.
Program.cs
using System;
using System.Diagnostics;
namespace ProcessExample
class Program
static void Main()
//call "System.Diagnostics.Process.Start" method to run calculator
Process.Start(@"C:\windows\system32\calc.exe");
//show message
Console.WriteLine("Calculator opened");
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Command Line Arguments in C#.NET
Command Line Arguments
� It is used to receive one or more argument values from command prompt
(command line).
� All the command line arguments will be received by the Main method as a
string array.
� This technique is used in most of the windows applications such as Notepad,
MS Office Word, VLC Media Player etc.
� Syntax: filename.exe value1 value2 �
Command Line Arguments - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �App1�.
� Type the location as �C:\CSharp�.
� Type the solution name as �App1�.
� Click on OK.
Program.cs
using System;
namespace App1
class Program
static void Main(string[ ] args)
if (args.Length >= 2)
Console.WriteLine(args[0]);
Console.WriteLine(args[1]);
Console.ReadKey();
}
Running the project
� Press Windows + R to open �Run� window.
� Type the following command.
C:\CSharp\App1\App1\bin\Debug\App1.exe 10 20
� Click on OK.
Output
Nullable Data Types in C#.NET
Nullable Data Types
� Null means �nothing� (or) �blank�.
� Data types are two types:
1) Value-type data types (or) Structures (or) Non-nullable data types
. The �structure variable� will be stored in �Stack� in RAM.
. Null values are not supported.
2) Reference-type data types (or) Classes (or) Nullable data types
. The �objects� will be stored in �Heap� in RAM.
. Null values are supported.
Syntax to convert non-nullable data type to nullable data type:
� Structurename? variable = null;
[or]
� Nullable<Structurename> variable = null;
Nullable Data Types - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �NullableDataTypesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �NullableDataTypesExample�.
� Click on OK.
Program.cs
using System;
namespace NullableDataTypesExample
class Program
static void Main()
//create a nullable variable
int? n;
//set "null" value into nullable variable
n = null;
//get the value of nullable variable
Console.WriteLine("n value is: " + n);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Exception Handling in C#.NET
Exception Handling
� Exception means �run time error�.
� When a statement can�t be executed due to some reason, system treat it as
a run time error (exception).
� When a runtime error found, automatically CLR raises the exception.
� Exceptions raise based on different factors like programmer�s mistake,
system problem, database connection or SQL statement execution problem
etc.
� When exception is raised, the programs gets terminated un-expectedly (or)
abruptly. It is inconvenience to the user. So the programmer has to use
�exception handling� concept to avoid un-expected closing of the
application.
� Exception handling is used to catch the run time errors (exceptions) and
display the error message on the same page, instead of closing the
application un-expectedly.
� Syntax:
try
Code here
catch (Exception ex)
Code here
finally
Code here
� �Try� block: Executes normally.
� �Catch� block: Executes only when the exception is raised in try block. It
receives the exception details as �ex� object.
o Message: Exception message
o Stack Trace: Method called sequence
� �Finally� block�: Executes after completion of try block or catch block.
Finally block is optional.
Exception Handling - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ExceptionHandlingExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ExceptionHandlingExample�.
� Click on OK.
Program.cs
using System;
namespace ExceptionHandlingExample
class Program
static void Main()
try
Console.Write("Enter first number: ");
int a = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter second number: ");
int b = Convert.ToInt32(Console.ReadLine());
int c = a / b;
Console.WriteLine("Quotient is " + c);
}
catch (Exception ex)
Console.WriteLine(ex.Message);
finally
Console.WriteLine("Finished");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Destructor in C#.NET
Destructor
� Destructor is a special method of the class, which will be automatically
called before deleting each object of the class.
� By using �destructors�, C#.NET allows the programmer to execute any code,
just before deleting an object.
� Destructor�s name should be same as current class name.
� Destructor can�t have arguments and return value.
� A class can have only one destructor.
� Destructor can�t be overloaded.
� Syntax of destructor:
~classname()
}
Destructor - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DestructorExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DestructorExample�.
� Click on OK.
Program.cs
using System;
namespace DestructorExample
class Class1
//constructor
public Class1()
Console.WriteLine("Constructor");
//Ex: opening the db connection
//destructor
~Class1()
Console.WriteLine("Destructor");
//Ex: closing the db connection
}
}
class Program
static void Main()
Class1 c1 = new Class1(); //constructor will be called here
//lot of code
//db work is over
Console.ReadKey();
} //destructor will be called here
Running the Project
� Go to �Debug� menu and click on �Start without Debugging�.
Output
The "System.IDisposable" interface
System.IDisposable
� �System.IDisposable� is a pre-defined interface, which contains only one
abstract method called �Dispose�. The �Dispose� method will be called
automatically, when �using� statement is used while creating object. In the
�Dipose� method, you can perform any cleaning process such as closing
database connections or closing files etc.
� The benefit of using �Dispose� method instead of �destructor� is: the
�Dispose� method will be called automatically as soon as �using� statement
ends; then the cleaning process will be performed through �Dispose�
method; so that we release the resources such as database connections and
file connections; no need to wait until the end of the application.
Syntax of inhering from �System.IDisposable� interface:
class classname : System.IDisposable
public void Dispose()
referencevariable = null;
Syntax of inhering from �System.IDisposable� interface:
using (classname referencevariable = new classname())
}
The "System.IDisposable" interface -
Example
Creating Project
� Open Visual Studio 2015. Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �IDisposeExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �IDisposeExample�. Click on OK.
Program.cs
using System;
namespace IDisposeExample
class Class1 : System.IDisposable
public Class1()
Console.WriteLine("object created");
//db connection opened
public void method1()
Console.WriteLine("method1");
public void Dispose()
Console.WriteLine("disposed");
//db connection closed
~Class1()
{
//destructor
Console.WriteLine("destructor");
class Program
static void Main()
using (Class1 c1 = new Class1())
c1.method1();
} //Dispose
Console.ReadKey();
} //Destructor
Running the Project
� Go to �Debug� menu and click on �Start without Debugging�.
Output
Garbage Collection in C#.NET
Garbage Collection
� Garbage collection is a process of deleting unreferenced variables or objects
from memory.
� Garbage collection will be performed automatically; but it will be performed
at the end of main method only.
� To perform garbage collection immediately, use System.GC.Collect()
method.
� Syntax: System.GC.Collect();
Garbage Collection - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �GarbageCollectionExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �GarbageCollectionExample�.
� Click on OK.
Program.cs
using System;
namespace GarbageCollectionExample
class Class1
~Class1()
Console.WriteLine("Destructor");
class Program
static void Main()
//create two objects
Class1 c1 = new Class1();
Class1 c2 = new Class1();
c1 = null;
//delete all the objects
GC.Collect();
Console.WriteLine("Garbage collection done.");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start without Debugging�.
Output
Delegates in C#.NET
Delegates
� Delegate is a reference variable that contains reference of one or more
methods that have same signature.
o Single Cast Delegates: Contains reference of only one method.
o Multi Cast Delegates: Contains reference of multiple methods.
� We can call the target method using delegate.
� We don�t use delegates individually; we use delegates only in events.
� The �delegate type� is used to specify signature of the target method.
Steps for development of delegates:
� Create a target method:
accessmodifier returntype methodname(arguments)
� Create delegate type (in the namespace):
public delegate returntype delegatetypename(arguments);
� Create a delegate (in the class or method);
delegatetypename delegatename;
� Store the address of target method in the delegate:
delegatename = methodname;
� Call the method indirectly using delegate:
delegatename(value1, value2, ..);
Single Cast Delegates - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �SingleCastDelegatesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �SingleCastDelegatesExample�. Click on OK.
Program.cs
using System;
namespace SingleCastDelegatesExample
class Class1
//create target method
public void Add(int a, int b)
int c = a + b;
Console.WriteLine("Sum is " + c);
//create a delegate type
public delegate void MyDelegateType(int a, int b);
class Program
static void Main()
{
//create a delegate
MyDelegateType d;
//create object
Class1 c1 = new Class1();
//store the address of Add method into delegate
d = c1.Add;
//call the Add method using delegate
d(10, 20);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start without Debugging�.
Output
Multi Cast Delegates - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MultiCastDelegatesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MultiCastDelegatesExample�.
� Click on OK.
Program.cs
using System;
namespace MultiCastDelegatesExample
class Class1
//create target method 1
public void Add(int a, int b)
int c = a + b;
Console.WriteLine("Sum is " + c);
//create target method 2
public void Subtract(int a, int b)
int c = a - b;
Console.WriteLine("Difference is " + c);
}
}
//create a delegate type
public delegate void MyDelegateType(int a, int b);
class Program
static void Main()
//create a delegate
MyDelegateType d;
//create object
Class1 c1 = new Class1();
//store the address of Add method into delegate
d = c1.Add;
//store the address of Subtract method also into the delegate
d += c1.Subtract;
//call the Add and Subtract methods using delegate
d(10, 3);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start without Debugging�.
Output
Events in C#.NET
Events
� Events are used to implement �publisher � subscriber� model.
� �Publisher� is a class that contains an event and also raises the event.
� �Subscriber� is a class that subscribes to the event of publisher class. That
means subscriber class provides an event handler that can be attached to
the event.
� When the event is raised in the publisher class, the event handler method
will be executed.
� An event can be subscribed with multiple methods also.
� In real time, publisher class will be developed by one programmer and
subscriber class will be developed by other programmer.
Steps for development of events:
� Create a delegate type (in the namespace):
public delegate returntype delegatetypename(argument1,
argument2, �)
� Create publisher class:
class publisherclassname
}
� Create an event in the publisher class:
public event delegatypename eventname;
� Raise the event in the publisher class:
eventname (value1, value2, �)
� Create subscriber class:
class subscriberclassname
{
}
� Create the event handler method in subscriber class:
public returntype methodname (arguments)
� Attach the event handler method to the event:
eventname += methodname ;
Events - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �EventsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �EventsExample�. Click on OK.
Program.cs
using System;
namespace EventsExample
public delegate void mydelegatetypename(string username);
class publisherclass
public event mydelegatetypename myevent;
public void raiseevent(string username)
myevent(username); //raise event
class subscriberclass
public void subscribedmethod(string username)
Console.WriteLine("Hello to " + username);
}
public void connect()
publisherclass pc = new publisherclass();
pc.myevent += subscribedmethod;
pc.raiseevent("Scott");
pc.raiseevent("Allen");
class Program
static void Main()
subscriberclass sc = new subscriberclass();
sc.connect();
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Anonymous Methods
Anonymous methods
� Anonymous methods are used to quickly create a method inside another
method.
� Anonymous methods are useful while handling the events.
� Anonymous methods can�t be a member of the class.
� Anonymous methods will have no name.
� Anonymous method�s address should be stored in a delegate (or) event,
through the delegate or event only we can call it.
Syntax of anonymous method:
delegate / event = delegate(argument1, argument2, �)
Code here
}
Anonymous Methods - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �AnonymousMethodsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �AnonymousMethodsExample�.
� Click on OK.
Program.cs
using System;
namespace AnonymousMethodsExample
class publisherclass
public event mydelegatetype myevent;
public int x = 0, y = 0;
public void increment()
x += 5;
y += 5;
myevent(x, y);
class subscriberclass
{
public void dowork()
publisherclass pc = new publisherclass();
pc.myevent += delegate(int a, int b)
int c = a + b;
Console.WriteLine("Sum is " + c);
};
pc.increment();
delegate void mydelegatetype(int a, int b);
class Program
static void Main()
subscriberclass sc = new subscriberclass();
sc.dowork();
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Lambda Expressions
Lambda Expressions
� Lambda Expressions are used to quickly create a method inside another
method.
� Lambda Expressions are useful while handling the events.
� Lambda Expressions can�t be a member of the class.
� Lambda Expressions will have no name.
� Lambda Expressions�s address should be stored in a delegate (or) event,
through the delegate or event only we can call it.
Syntax of Lambda Expressions:
delegate / event = (argument1, argument2, �) =>
Code here
}
Lambda Expressions - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �LambdaExpressionsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �LambdaExpressionsExample�.
� Click on OK.
Program.cs
using System;
namespace LambdaExpressionsExample
class publisherclass
public event mydelegatetype myevent;
public int x = 0, y = 0;
public void increment()
x += 5;
y += 5;
myevent(x, y);
class subscriberclass
public void dowork()
publisherclass pc = new publisherclass();
pc.myevent += (a, b) =>
{
int c = a + b;
Console.WriteLine("Sum is " + c);
};
pc.increment();
delegate void mydelegatetype(int a, int b);
class Program
static void Main()
subscriberclass sc = new subscriberclass();
sc.dowork();
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Inline Lambda Expressions
Inline Lambda Expressions
� Inline Lambda Expressions are similar to lambda expressions, but can be
used only for the methods that receives one of more arguments and return
a value.
� Inline lambda expressions can contain only just a single calculation; can�t
contain any other additional code.
� Inline lambda expressions can receive or more arguments; must return a
value.
Syntax of Inline Lambda Expressions:
delegate / event = (argument1, argument2, �) =>
Calculation here
)
Inline Lambda Expressions - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �InlineLambdaExpressionsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �InlineLambdaExpressionsExample�.
� Click on OK.
Program.cs
using System;
namespace InlineLambdaExample
class publisherclass
public event mydelegatetype myevent;
public int x = 0, y = 0;
public void increment()
x += 5;
y += 5;
int result = myevent(x, y);
Console.WriteLine("Sum is " + result);
class subscriberclass
public void dowork()
{
publisherclass pc = new publisherclass();
pc.myevent += (a, b) => ( a + b );
pc.increment();
delegate int mydelegatetype(int a, int b);
class Program
static void Main()
subscriberclass sc = new subscriberclass();
sc.dowork();
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Inner Classes in C#.NET
Inner Classes
� Class inside another class is called as �inner class�.
� The class that encloses inner class, is called as �outer class�.
� Use �inner class�, if you want to specify that the class is a part of the outer
class logically.
Syntax to create inner class
class outerclassname
public class innerclassname
Syntax to access the inner class
outerclassname . innerclassname
Inner Classes - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �InnerClassesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �InnerClassesExample�.
� Click on OK.
Program.cs
using System;
namespace InnerClassesExample
class Class1
public class Class2
public void mymethod()
Console.WriteLine("mymethod");
class Program
static void Main()
{
Class1.Class2 c2 = new Class1.Class2();
c2.mymethod();
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Indexer in C#.NET
Indexer
� Indexer makes it easy to access a member array through the reference
variable of a class.
� Indexer is a property with name �this�.
� Indexer overloading is possible. That means we can create multiple indexers
in the same class, with different arguments.
� Mostly indexers are used in pre-defined classes; it�s rare to use indexers in
user-defined classes in real time.
Syntax to create indexer:
class classname
public datatype this[string variablename]
get
return value ;
set
Datamember = value ;
Syntax to access the indexer: Referencevariable["string value"]
Indexer - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �IndexerExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �IndexerExample�.
� Click on OK.
Program.cs
using System;
namespace IndexerExample
class Class1
//creating an array
public string[] cities = new string[] { "Hyderabad", "Chennai",
"Bangalore" };
public long[] population = new long[] { 9000, 5000, 10000 };
//indexer
public long this[string city]
get
int n = Array.IndexOf(cities, city);
return population[n];
}
}
class Program
static void Main()
Class1 c1 = new Class1();
long p = c1["Chennai"];
Console.WriteLine(p);
//Console.Write(c1.population[Array.IndexOf(c1.cities, "Chennai")]);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Assemblies in C#.NET
Assembly
� In .NET, an �Assembly� is a file that contains �compiled source code (in MSIL
language) of the .net program�.
� Assemblies can�t be run directly based on the operating system; can only by
run by CLR (Common Language Runtime). CLR reads MSIL code from
assembly and convert the same into native machine language automatically,
while .net program exection.
� Assemblies are two types:
1. Executable assemblies
2. Library assemblies
Executable Assemblies
� �Executable assemblies� are �EXE files� that can run directly (based on CLR).
� When you compile the following types of applications, Visual Studio
automatically generates (creates) an �Executable Assembly�:
o Console Application
o Windows Forms Application
o Windows Service
� Drawback: The code of executable assemblies (projects) can�t be called in
another assemblies (projects).
Library Assemblies
� �Library Assemblies� are �DLL files� that can�t run directly. The library
assemblies are always �supporting files� to �Executable Assembly�.
Executable assemblies dynamically call the library assemblies at run time.
� When you compile the following types of applications, Visual Studio
automatically generates (creates) an �Library Assembly�:
o Class Library
o Windows Forms Control Library
� An �executable assembly� can call any no. of library assemblies.
� A �library assembly� can be called by any no. of executable assemblies.
Types of Library Assemblies
� Library assemblies are divided into two types, based on where the library
assembly is placed.
� Library assemblies are two types:
1. Private Assemblies
2. Shared Assemblies
Private Assemblies
� Private assemblies (dll files) should be placed in each �application folder�.
� Private assemblies are faster in execution but there is memory wastage, if
multiple applications are consuming the same private assembly and are
running on same system.
Shared Assemblies
� Shared assemblies are located in GAC (Global Assembly Cache) folder and
can be accessed by the applications that are running on the same system.
� Shared assemblies save memory, because there is no need of duplicate
copies of dll file in every app�s folder.
� Shared assemblies are a bit slower than private assemblies.
GAC
� GAC (Global Assembly Cache) is a special folder in .NET Framework, which
contains all the shared assemblies (shared dll files).
� The shared dll files that are present at GAC folder can be accessible from
any application running in the same system.
� GAC Folder: C:\Windows\Microsoft.NET\assembly\GAC_MSIL
� Advantage of GAC folder: Avoid the �DLL hell�.
� DLL hell: When we install a new version of an application, the dll files of old
version of the application will be overwritten with latest version�s dll files.
GAC folder solves this problem with unique identification of dll files.
SNK
� An assembly must have �snk� (Strong Name Key) to be placed in GAC folder.
� SNK (Strong Name Key) file is contains �unique code�, which is useful for
�unique identification� of dll files that are placed in GAC folder.
� SNK file can be created in visual studio through the �project properties� �
�Signing� option.
Class Library
� �Class Library� is a special type of project in Visual Studio.
� Class Library is a collection of re-usable classes.
� When the class library project is compiled, a �library assembly� (DLL file) will
be genereated.
Class Libraries & Private Assemblies -
Example
Creating Class Library
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Class Library�.
� Type the project name as �ClassLibrary1�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ClassLibrary1�.
� Click on OK.
Class1.cs
using System;
namespace ClassLibrary1
public class Class1
public bool CheckEmail(string Email)
bool b;
if (Email.Contains(" ") == false && Email.IndexOf("@") > 0)
b = true;
else
b = false;
return b;
}
Compiling the project
� Go to �Build� menu and click on �Build Solution�.
� Note: You can�t run the class library directly.
� Path of dll file:
C:\CSharp\ClassLibrary1\ClassLibrary1\bin\Debug\ClassLibrary1.dll
Creating the client project (Console Application):
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ConsoleApplication1�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ConsoleApplication1�.
� Click on OK.
Add reference
� Open solution explorer.
� Right click on the project name (ConsoleApplication1) and click on �Add� �
�Reference�.
� Click on �Browse�.
� Select the dll file
(C:\CSharp\ClassLibrary1\ClassLibrary1\bin\Debug\ClassLibrary1.dll).
� Click on �Add� � �OK�.
� Then it shows the �ClassLibrary1� in the �References� list in the solution
explorer.
Program.cs
using System;
using ClassLibrary1;
namespace ConsoleApplication1
class Program
static void Main()
Class1 c1 = new Class1();
string s = "sample@gmail.com";
bool result = c1.CheckEmail(s);
if (result == true)
Console.WriteLine(s);
Console.WriteLine("Valid email address");
else
Console.WriteLine(s);
Console.WriteLine("Invalid email address");
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Shared Assemblies - Example
Creating Class Library
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Class Library�.
� Type the project name as �ClassLibrary2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ClassLibrary2�.
� Click on OK.
Class1.cs
using System;
namespace ClassLibrary2
public class Class1
public bool CheckEmail(string Email)
bool b;
if (Email.Contains(" ") == false && Email.IndexOf("@") > 0)
b = true;
else
b = false;
return b;
}
Creating �snk� file:
� To create snk file, open solution explorer; right click on the project name
�ClassLibrary2� and click on �Properties�.
� Click on �Signing�. Check the checkbox �Sign the assembly�.
� Click on the dropdown list and click on �New�.
� Type the file name as �demo�. Uncheck the checkbox �protect my key file
with a password�. Click on OK.
� Close the properties window.
Compiling the project
� Go to �Build� menu and click on �Build Solution�.
� Note: You can�t run the class library directly.
Path of dll file:
C:\CSharp\ClassLibrary2\ClassLibrary2\bin\Debug\ClassLibrary2.dll
Uploading the dll file into GAC
� Go to �Start� � �All Programs� � �Visual Studio 2015� � Right click on
�Developer Command Prompt for VS 2015� and click on �Run as
administrator�. Click on �Yes�.
� Type the following command in the console window:
gacutil �i
"C:\CSharp\ClassLibrary2\ClassLibrary2\bin\Debug\ClassLibrary2.dll"
� Press Enter.
� It shows the following message:
Assembly successfully added to the cache.
Creating the client project (Console Application):
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ConsoleApplication2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ConsoleApplication2�.
� Click on OK.
Add reference
� Open solution explorer.
� Right click on the project name (ConsoleApplication2) and click on �Add� �
�Reference�.
� Click on �Browse�.
� Select the dll file
(C:\CSharp\ClassLibrary2\ClassLibrary2\bin\Debug\ClassLibrary2.dll).
� Click on �Add� � �OK�.
� Then it shows the �ClassLibrary2� in the �References� list in the solution
explorer.
� Note: You can notice that the �ClassLibrary2.dll� file is not present in
�C:\CSharp\ConsoleApplication2\ConsoleApplication2\bin\Debug� folder.
Even it is present, the �ConsoleApplication2.exe� file works without
�ClassLibrary2.dll� file present in the same folder, because it will be
accessed from the GAC folder.
Program.cs
using System;
using ClassLibrary2;
namespace ConsoleApplication2
class Program
static void Main()
Class1 c1 = new Class1();
string s = "sample@gmail.com";
bool result = c1.CheckEmail(s);
if (result == true)
Console.WriteLine(s);
Console.WriteLine("Valid email address");
else
Console.WriteLine(s);
Console.WriteLine("Invalid email address");
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Access Modifiers in C#.NET
Access Modifiers
� Access Modifiers are also called as �Access Specifiers�, which are used to
specify the access privileges of a member of a class.
� Access Modifiers can be applicable to all types of members (such as data
member, method, constructor, property etc.) that tell which classes can
access the member and which can�t.
� Access Modifiers are used to create security for the member of a class.
� List of access modifiers in c#.net:
1. private (default)
2. protected
3. internal
4. protected internal
5. public
1. private: The private members are accessible �only within the same
class�. These are not accessible in any other classes. �Private� is the
default access modifier in c#.net. That means, if you don�t specify any
access modifier, by default, �private� will be applied.
2. protected: The protected members are accessible �within the same
class� and also within the �child classes at same project� and �child
classes at other projects�. These are not accessible in any other classes.
Note: The other projects must add the reference of current project.
3. internal: The internal members are accessible �anywhere within the
same project�. These are not accessible in any classes at other projects.
4. protected internal: �Protected internal� is a combination of �protected�
and �internal�. The protected internal members are accessible �anywhere
within the project� and also accessible �within the child classes at other
projects�. These are not accessible in other classes at other projects.
Note: The other projects must add the reference of current project.
5. public: The public members are accessible �everywhere�.
C:\Users\Harsha\OneDrive\C#.NET\72. Access Modifiers\Access Modifiers.png
Access Modifiers - Example
Creating Project
� Open Visual Studio 2015. Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �AccessModifiersExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �AccessModifiersExample�. Click on OK.
Program.cs
namespace AccessModifiersExample
//same class
class Class1
private int a; //private member
protected int b; //protected member
internal int c; //internal member
protected internal int d; //protected internal member
public int e; //public member
public void Method1()
a = 10; //private member is accessible in the same class
b = 20; //protected member is accessible in the same class
c = 30; //internal member is accessible in the same class
d = 40; //protected internal member is accessible in the same class
e = 50; //public member is accessible in the same class
}
//child class in the same project
class Class2: Class1
public void Method2()
b = 20; //protected member is accessible in the child class at same
project
c = 30; //internal member is accessible in the child class at same
project
d = 40; //protected internal member is accessible in the child class at
same project
e = 50; //public member is accessible in the child class at same project
//other class in the same project
class Class3
public void Method3()
Class1 c1 = new Class1();
c1.c = 30; //internal member is accessible in the other class at same
project
c1.d = 40; //protected internal member is accessible in the other class
at same project
c1.e = 50; //public member is accessible in the other class at same
project
//other class in the same project
class Program
{
static void Main()
Class1 c1 = new Class1();
c1.c = 30; //internal member is accessible in the other class at same
project
c1.d = 40; //protected internal member is accessible in the other class
at same project
c1.e = 50; //public member is accessible in the other class at same
project
System.Console.WriteLine("Done");
System.Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Access Modifiers for classes
Access Modifiers for Classes
� Access Modifiers can be used for classes also, to specify where the class is
accessible.
� The following access modifiers can be used for classes:
� List of access modifiers for classes in c#.net:
1. internal (default)
2. public
3. private
1. internal: The internal classes can be accessible within the same project
only. They are not accessible in other projects. �Internal� is the default
access modifier for the classes.
2. public: The public classes can be accessible anywhere (within the same
project and also in other projects too).
3. private: Only inner classes can be �private classes�. The �private inner
classes� can be accessible within the same outer classes only. They are
not accessible in other classes.
Documentation Comments
Documentation Comments
� Documentation comments are used to provide description for the methods
and its arguments, which will be appear while calling the method (while
typing the code in visual studio).
Syntax for method description:
/// <summary>Method description here</summary>
Syntax for parameter description:
/// <param name="parameter name">Parameter description
here</param>
Documentation Comments - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DocumentationCommentsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DocumentationCommentsExample�.
� Click on OK.
Program.cs
using System;
namespace DocumentationCommentsExample
class Class1
/// <summary>Adds two numbers</summary>
/// <param name="firstNumber">First number for adding</param>
/// <param name="secondNumber">Second number for
adding</param>
public void Add(int firstNumber, int secondNumber)
//code here
class Program
static void Main()
{
Class1 c1 = new Class1();
c1.Add(10, 20);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
While typing the code in visual studio, it shows the description as
tooltip.
Extension Methods in C#.NET
Extension Methods
� Extension methods are methods that are indirectly injected into a compiled
class, without modifying its source code.
� Assume, there is a re-usable class in the class library and its reference is
added in the client project.
� From the class library, you can add a new method to the re-usable class,
without modifying the source code of the re-usable class.
� That method is called as �extension method�.
� Extension method should be a static method; it should be inside a static
class.
� It should be public method.
� It should have atleas one argument of the target class type with �this�
keyword. That argument represents �this� keyword in the extension
method. �This� keyword represents the current object, based on which the
method is called.
� The extension method can have maximum any no. of arguments, but
minimum is one.
� The extension method can have any return type.
Syntax of extension method (in the class library):
public static class classname
public static returntype methodname(this classname
argumentname)
Code here
Syntax of call the extension method (in the client app):
referencevariablename.methodname (arguments);
Extension Methods - Example
Creating Class Library
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Class Library�.
� Type the project name as �ClassLibrary1�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ClassLibrary1�.
� Click on OK.
Class1.cs
using System;
namespace ClassLibrary1
public class Class1
public double getsquare(double n)
double sq = n * n;
return sq;
}
Compiling the project
� Go to �Build� menu and click on �Build Solution�.
� Note: You can�t run the class library directly.
� Path of dll file:
C:\CSharp\ClassLibrary1\ClassLibrary1\bin\Debug\ClassLibrary1.dll
Creating the client project (Console Application):
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ConsoleApplication1�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ConsoleApplication1�.
� Click on OK.
Add reference
� Open solution explorer.
� Right click on the project name (ConsoleApplication1) and click on �Add� �
�Reference�.
� Click on �Browse�.
� Select the dll file
(C:\CSharp\ClassLibrary1\ClassLibrary1\bin\Debug\ClassLibrary1.dll).
� Click on �Add� � �OK�.
� Then it shows the �ClassLibrary1� in the �References� list in the solution
explorer.
Program.cs
using System;
using ClassLibrary1;
namespace ConsoleApplication1
static class Class2
public static double getcube(this Class1 c1, double n)
double cb = n * n * n;
return cb;
class Program
static void Main()
Class1 c1 = new Class1();
int a = 10;
double result1 = c1.getsquare(a);
Console.WriteLine("Square is " + result1);
double result2 = c1.getcube(a);
Console.WriteLine("Cube is " + result2);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
C#.NET � Console - System.IO
Namespace
Introduction to "System.IO" namespace
System.IO namespace
� The �System.IO� namespace provides a set of classes to manipulate files and
folders in the hard disk.
� List of important classes in System.IO namespace:
1. System.IO.FileInfo
2. System.IO.DirectoryInfo
3. System.IO.File
4. System.IO.Directory
5. System.IO.FileStream
6. System.IO.StreamWriter
7. System.IO.StreamReader
The �System.IO.FileInfo� class
System.IO.FileInfo class
� The �FileInfo� is a class in �System.IO� namespace.
� The �FileInfo� class�s object represents a file in the harddisk.
� The �FileInfo� class is used to manipulate a file in the harddisk.
Steps for development of �FileInfo� class:
� Import the namespace:
o using System.IO;
� Create a reference variable:
o FileInfo referencevariable;
� Create an object:
o referencevariable = new FileInfo( �file path� );
� Set properties:
o referencevariable.property = value ;
� Call method:
o referencevariable.methodname ();
Properties of �FileInfo� class:
Sl.
No
Property
Description
DirectoryName
Represents the current file�s location�s full path.
Syntax: referencevariable.DirectoryName
Name
Represents only name of the file with extension (without
path).
Syntax: referencevariable.Name
Extension
Represents file extension of current file.
Syntax: referencevariable.Extension
FullName
Represents full path of the current file.
Syntax: referencevariable.FullName
Exists
Represents whether the current file exists or not. It returns a
Boolean value.
True: The file exists
False: The file not exists
Syntax: referencevariable.Exists
Length
Represents file size (no. of bytes).
Syntax: referencevariable.Length
CreationTime
Represents the date and time of file creation.
Syntax: referencevariable.CreationTime
LastAccessTime
Represents the date and time of file access.
Syntax: referencevariable.LastAccessTime
LastWriteTime
Represents the date and time of file last modification.
Syntax: referencevariable.LastWriteTime
10
Attributes
Represents the attributes of the current file.
Syntax: referencevariable.Attributes
11
IsReadOnly
Represents whether the current file is readonly or not.
Syntax: referencevariable.IsReadOnly
Constructors of �FileInfo� class:
Sl.
No
Constructor
Description
FileInfo()
Initializes the file path.
Syntax: new FileInfo(string FilePath)
Methods of �FileInfo� class:
Sl.
No
Method
Description
CopyTo()
Copies the current file into the specified destination path.
It is equal to �copy and paste�.
Syntax: referencevariable.CopyTo(string DestinationFilePath)
Delete()
Deletes the current file.
Syntax: referencevariable.Delete()
MoveTo()
Movies the current file into the specified destination path.
It is equal to �cut and paste�.
Syntax: referencevariable.MoveTo(string DestinationFilePath)
The �System.IO.FileInfo� class - Example
Creating Project
� Create the following folders and files:
o C:\CSharp
. Sample.pdf
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �FileInfoExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �FileInfoExample�.
� Click on OK.
Program.cs
//Note: Create "C:\CSharp\sample.txt"
using System;
using System.IO;
namespace namespace1
class Program
static void Main()
FileInfo f;
f = new FileInfo(@"c:\CSharp\sample.txt");
Console.WriteLine("Exists: " + f.Exists);
if (f.Exists)
Console.WriteLine("Full name: " + f.FullName);
Console.WriteLine("Name: " + f.Name);
Console.WriteLine("Directory name: " + f.DirectoryName);
Console.WriteLine("Extension: " + f.Extension);
Console.WriteLine("Creation date and time: " + f.CreationTime);
Console.WriteLine("Modification date and time: " +
f.LastWriteTime);
Console.WriteLine("Access date and time: " + f.LastAccessTime);
Console.WriteLine("Length: " + f.Length + " bytes");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
It shows the file details as above.
The �System.IO.DirectoryInfo� class
System.IO.DirectoryInfo class
� The �DirectoryInfo� is a class in �System.IO� namespace.
� The �DirectoryInfo� class�s object represents a folder (directory) in the
harddisk.
� The �DirectoryInfo� class is used to manipulate a folder (directory) in the
harddisk.
Steps for development of �DirectoryInfo� class:
� Import the namespace:
o using System.IO;
� Create a reference variable:
o DirectoryInfo referencevariable;
� Create an object:
o referencevariable = new DirectoryInfo( �folder path� );
� Set properties:
o referencevariable.property = value ;
� Call method:
o referencevariable.methodname ();
Properties of �DirectoryInfo� class:
Sl.
No
Property
Description
Parent.FullName
Represents the current folder�s parent folder�s full path.
Syntax: referencevariable.Parent.FullName
Name
Represents only name of the folder (without parent
folder�s path).
Syntax: referencevariable.Name
FullName
Represents full path of the current folder.
Syntax: referencevariable.FullName
Root.FullName
Represents full path of the root folder of the current
folder.
Syntax: referencevariable.Root.FullName
Exists
Represents whether the current folder exists or not. It
returns a Boolean value.
True: The folder exists
False: The folder not exists
Syntax: referencevariable.Exists
6
CreationTime
Represents the date and time of folder creation.
Syntax: referencevariable.CreationTime
LastAccessTime
Represents the date and time of folder access.
Syntax: referencevariable.LastAccessTime
LastWriteTime
Represents the date and time of folder last modification.
Syntax: referencevariable.LastWriteTime
Attributes
Represents the attributes of the current folder.
Syntax: referencevariable.Attributes
Constructors of �DirectoryInfo� class:
Sl.
No
Constructor
Description
DirectoryInfo()
Initializes the folder path.
Syntax: new DirectoryInfo(string FolderPath)
Methods of �DirectoryInfo� class:
Sl.
No
Method
Description
Delete()
Deletes the current folder, if it is empty.
If the current folder is not empty, it throws an
exception automatically.
Syntax: referencevariable.Delete()
Delete(true)
Deletes the current folder, including all of its files and
sub folders.
Syntax: referencevariable.Delete(true)
Warning: This action is permanent. It is impossible to
undo this action. Check the folder path before
running the program.
MoveTo()
Movies the current folder into the specified
destination path.
It is equal to �cut and paste�.
Note: The destination folder path should be in the
same drive. Ex: C: drive
Syntax: referencevariable.MoveTo(string
DestinationFolderPath)
CreateSubdirectory()
Creates a new folder with specified name.
Syntax: referencevariable.CreateSubdirectory(string
newfoldername)
5
GetFiles()
Returns the list of files of the current folder, as an
array of FileInfo[].
Syntax: referencevariable.GetFiles()
GetDirectories()
Returns the list of sub directories of the current
folder, as an array of DirectoryInfo[].
Syntax: referencevariable.GetDirectories()
The �System.IO.DirectoryInfo� class -
Example
Creating Project
� Create the following folders and files:
o C:\CSharp
. sample
� firstfolder (folder)
� secondfolder (folder)
� thirdfolder (folder)
� New Text Document.txt
� New Microsoft Word Document.docx
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DirectoryInfoExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DirectoryInfoExample�.
� Click on OK.
Program.cs
using System;
using System.IO;
namespace namespace1
class Program
static void Main()
DirectoryInfo d;
d = new DirectoryInfo(@"c:\CSharp\myfolder");
Console.WriteLine("Exists: " + d.Exists);
if (d.Exists)
Console.WriteLine("Full name: " + d.FullName);
Console.WriteLine("Name: " + d.Name);
Console.WriteLine("Directory name: " + d.Parent);
Console.WriteLine("Creation date and time: " + d.CreationTime);
Console.WriteLine("Modification date and time: " +
d.LastWriteTime);
Console.WriteLine("Access date and time: " + d.LastAccessTime);
Console.WriteLine("\nFiles:");
FileInfo[] files = d.GetFiles();
for (int i = 0; i < files.Length; i++)
Console.WriteLine(files[i].FullName);
}
Console.WriteLine("\nSub directories:");
DirectoryInfo[] directories = d.GetDirectories();
for (int i = 0; i < directories.Length; i++)
{
Console.WriteLine(directories[i].FullName);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
It shows the folder details as above.
The �System.IO.Directory� class
System.IO.Directory class
� The �Directory� is a class in �System.IO� namespace.
� The �Directory� class is a static class, which provides a set of static methods
to manipulate folders.
Steps for development of �Directory� class:
� Import the namespace:
o using System.IO;
� Call any static method:
o Directory.method ();
Methods of �Directory� class:
Sl.
No
Method
Description
Exists()
Checks whether the folder exists or not.
True: The folder exists.
False: The folder not exists
Syntax: Directory.Exists(string FolderPath)
CreateDirectory()
Create the specified folder and returns corresponding
DirectoryInfo�s object.
Syntax: Directory.CreateDirectory(string FolderPath)
3
Delete()
Deletes the specified folder permanently, including all of its
sub folders and files in it.
Syntax: Directory.Delete(string FolderPath, true)
Warning: This action is permanent. It is impossible to undo
this action. Check the folder path before running the
program.
Move()
Moves the specified source folder into the specified
destination location.
Rule: Both source and destination location should be in the
same drive. Ex: C: drive
Syntax: Directory.Move(string SourceFolderPath, string
DestinationFolderPath)
The �System.IO.Directory� class - Example
Creating Project
� Create the following folders:
o C:\CSharp
. Sample (folder)
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DirectoryExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DirectoryExample�.
� Click on OK.
Program.cs
using System;
using System.IO;
namespace DirectoryExample
class Program
static void Main()
if (Directory.Exists(@"c:\folder1") == true)
Directory.Delete(@"C:\folder1", true);
}
if (Directory.Exists(@"c:\folder2") == true)
{
Directory.Delete(@"C:\folder2", true);
Directory.CreateDirectory(@"C:\folder1");
Console.WriteLine("folder1 created");
Console.WriteLine("folder1 exists: " + Directory.Exists(@"C:\folder1"));
//Output: True
Directory.Delete(@"C:\folder1");
Console.WriteLine("folder1 deleted");
Console.WriteLine("folder1 exists: " + Directory.Exists(@"C:\folder1"));
//Output: False
Directory.CreateDirectory(@"C:\folder1");
Console.WriteLine("folder1 created");
Directory.Move(@"C:\folder1", @"C:\folder2");
Console.WriteLine("folder1 moved as folder2");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The �System.IO.File� class
System.IO.File class
� The �File� is a class in �System.IO� namespace.
� The �File� class is a static class, which provides a set of static methods to
manipulate files.
Steps for development of �File� class:
� Import the namespace:
o using System.IO;
� Call any static method:
o File.method ();
Methods of �File� class:
Sl.
No
Method
Description
Exists()
Checks whether the file exists or not.
True: The file exists.
False: The file not exists
Syntax: File.Exists(string FilePath)
Create()
Create the specified file and returns corresponding FileStream�s
object.
Syntax: File.Create(string FilePath)
3
Delete()
Deletes the specified file permanently.
Syntax: File.Delete(string FilePath)
Warning: This action is permanent. It is impossible to undo this
action. Check the file path before running the program.
Move()
Moves the specified source file into the specified destination
location.
Syntax: File.Move(string SourceFilePath, string
DestinationFilePath)
Copy()
Copies the specified source file into the specified destination
location.
Syntax: File.Copy(string SourceFilePath, string
DestinationFilePath)
The �System.IO.File� class - Example
Creating Project
� Create the following folders and files:
o C:\CSharp
� Open Visual Studio 2015. Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �FileExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �FileExample�. Click on OK.
Program.cs
using System;
using System.IO;
namespace FileExample
class Program
static void Main()
if (Directory.Exists(@"c:\folder1") == true)
Directory.Delete(@"c:\folder1", true);
Directory.CreateDirectory(@"c:\folder1");
Console.WriteLine("Folder created");
File.Create(@"c:\folder1\file1.txt").Close();
Console.WriteLine("File created");
File.Copy(@"c:\folder1\file1.txt", @"c:\folder1\file2.txt");
Console.WriteLine("File created");
File.Move(@"c:\folder1\file2.txt", @"c:\folder1\file3.txt");
Console.WriteLine("File moved");
Console.WriteLine("File exists: " + File.Exists(@"c:\folder1\file3.txt"));
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The �System.IO.FileStream� class
System.IO.FileStream class
� The �FileStream� is a class in �System.IO� namespace.
� The �FileStream� class is used to write data to a file (or) read data from an
existing file in byte[ ] format.
� But in fact, it is difficult to deal with byte[ ]. That�s why, often we use
StreamWriter or StreamReader to perform file reading or writing
operations.
� �FileStream� is useful while working with �StreamWriter� or
�StreamReader�.
� �FileStream� is a child class of a parent class called �Stream�.
� �FileStream� supports two modes majorly:
o �Create� mode: Used to create a new file and write data into the new
file.
o �Read� mode: Used to read data from an existing file.
Steps for development of �FileStream� class (Create
mode):
� Import the namespace:
o using System.IO;
� Create a reference variable:
o FileStream referencevariable;
� Create an object:
o referencevariable = new FileStream( �file path�, FileMode.Create,
FileAccess.Write );
Steps for development of �FileStream� class (Open mode):
� Import the namespace:
o using System.IO;
� Create a reference variable:
o FileStream referencevariable;
� Create an object:
o referencevariable = new FileStream( �file path�, FileMode.Open,
FileAccess.Read );
The �System.IO.StreamWriter� class
System.IO.StreamWriter class
� The �StreamWriter� is a class in �System.IO� namespace.
� The �StreamWriter� class is used to write data to a new / existing file in text
format.
� �StreamWriter� is usually used in combination with �FileStream�.
Steps for development of �StreamWriter� class:
� Import the namespace:
o using System.IO;
� Create a reference variable:
o StreamWriter referencevariable;
� Create an object:
o referencevariable = new StreamWriter( file stream object here );
� Write data to file:
o referencevariable.Write (string content);
� Close the file:
o referencevariable.Close ();
The �System.IO.StreamWriter� class -
Example
Creating Project
� Create the following folder:
o C:\CSharp
� Open Visual Studio 2015. Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �StreamWriterExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �StreamWriterExample�. Click on OK.
Program.cs
//city.txt
using System;
using System.IO;
namespace namespace1
class Program
static void Main()
//delete the file, if it already exists
FileInfo f = new FileInfo(@"c:\CSharp\file1.txt");
if (f.Exists == true)
f.Delete();
//create the file
FileStream fs = new FileStream(@"c:\CSharp\file1.txt",
FileMode.Create, FileAccess.Write);
//write data to the file
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("Hai");
sw.WriteLine("Hello");
sw.WriteLine("How are you");
//close the file
sw.Close();
Console.WriteLine("Written");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
The file will be created at �C:\Sharp\sample.txt�.
The �System.IO.StreamReader� class
System.IO.StreamReader class
� The �StreamReader� is a class in �System.IO� namespace.
� The �StreamReader� class is used to read data from an existing file in text
format.
� �StreamReader� is usually used in combination with �FileStream�.
Steps for development of �StreamReader� class:
� Import the namespace:
o using System.IO;
� Create a reference variable:
o StreamReader referencevariable;
� Create an object:
o referencevariable = new StreamReader( file stream object here );
� Read complete content of the file:
o string variablename = referencevariable.ReadToEnd( );
� Close the file:
o referencevariable.Close( );
The �System.IO.StreamReader� class -
Example
Creating Project
� Create the following folder:
o C:\CSharp
� Open Visual Studio 2015. Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�. Select �Console Application�.
� Type the project name as �StreamReaderExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �StreamReaderExample�. Click on OK.
Program.cs
//city.txt
using System;
using System.IO;
namespace namespace1
class Program
static void Main()
//check the file exists or not
FileInfo f = new FileInfo(@"c:\CSharp\file1.txt");
if (f.Exists == true)
//open the file
FileStream fs = new FileStream(@"c:\CSharp\file1.txt",
FileMode.Open, FileAccess.Read);
//read the file
StreamReader sr = new StreamReader(fs);
string s = sr.ReadToEnd();
//close the file
sr.Close();
Console.WriteLine(s);
else
Console.WriteLine("File not found");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
It shows content from �C:\CSharp\sample.txt� file.
C#.NET � Console � ADO.NET
Database Basics
Database Basics
� DBMS (Database Management System): It is a software, which is used to
store and manage databases. Ex: SQL Server, Oracle etc.
� Database: It is a collection of tables. Databases are used to store data
permanently.
� Table: It is a collection of rows and columns.
� Column: A field in the table is called as column.
� Row: A record in the table is called as row.
Table Structure
Sl. No
Column Name
Data Type
Column1
Data type 1
Column2
Data type 2
Column3
Data type 3
Example of Table Structure: Employees
Sl. No
Column Name
Data Type
EmpID
Int
EmpName
Nvarchar(max)
Salary
decimal
Table: Employees
EmpID
EmpName
Salary
Scott
5000
Allen
6000
Jones
7000
4
John
8000
Mark
9000
Introduction to ADO.NET
Introduction to ADO.NET
� ADO.NET (ActiveX Data Objects .NET) is a �database technology� or
�database framework�, which is used to connect and interact with databases
such as SQL Server, Oracle, Excel, Access etc.
� ADO.NET is a collection of pre-defined classes.
� ADO.NET can be used in c#.net and asp.net also.
List of pre-defined classes in ADO.NET
� ADO.NET provides the following pre-defined classes.
1. System.Data.SqlClient.SqlConnection
2. System.Data.SqlClient.SqlCommand
3. System.Data.SqlClient.SqlDataReader
4. System.Data.SqlClient.SqlDataAdapter
5. System.Data.SqlClient.SqlParameter
6. System.Data.SqlClient.SqlCommandBuilder
7. System.Data.SqlClient.SqlTransaction
8. System.Data.OleDb.OleDbConnection
9. System.Data.OleDb.OleDbCommand
10. System.Data.OleDb.OleDbDataReader
11. System.Data.OleDb.OleDbDataAdapter
12. System.Data.OleDb.OleDbParameter
13. System.Data.OleDb.OleDbCommandBuilder
14. System.Data.OleDb.OleDbTransaction
15. System.Data.DataSet
16. System.Data.DataTable
17. System.Data.DataRow
18. System.Data.DataColumn
19. System.Data.DataView
ADO.NET � �SqlConnection� class
System.Data.SqlClient.SqlConnection
� The �SqlConnection� is a class, which is a member of �System.Data.SqlClient�
namespace.
� This class�s object represents a connection to SQL Server database.
Properties of �SqlConnection� class:
Sl.
No
Property
Data Type
Description
ConnectionString
string
Represents details about the
connection, based on which ado.net
should establish a connection with
database.
Syntax:
referencevariable.ConnectionString
= �connection string here�;
State
ConnectionState
Represents current status of the
connection, whether it is opened or
closed. It is readonly property.
Syntax: referencevariable.State
Constructors of �SqlConnection� class:
Sl.
No
Constructor
Description
SqlConnection()
Initializes nothing.
Syntax: new SqlConnection();
SqlConnection(string
ConnectionString)
Initializes �ConnectionString� property.
Syntax: new SqlConnection(�connection string here�);
Methods of �SqlConnection� class:
Sl.
No
Method
Return Data
Type
Description
Open()
void
Opens the connection. After opening the
connection, SQL Server listens the requests you
made.
Syntax: referencevariable.Open()
Close()
void
Closes the connection. After closing the
connection, SQL Server stops listening the
requests you made.
Syntax: referencevariable.Close()
Steps for development of �SqlConnection� class:
� Import the namespace:
o using System.Data.SqlClient;
� Create a reference variable:
o SqlConnection referencevariable;
� Create an object:
o referencevariable = new SqlConnection();
� Set connection string:
o referencevariable.ConnectionString = �connection string here�;
� Open the connection:
o referencevariable.Open( );
� Close the connection:
o referencevariable.Close( );
Connection Strings for SQL Server
Sl.
No
Type of
connection
Description
Connection String
Windows
Authentication
The current working
windows username and
password will be
automatically
submitted to SQL
Server.
�data source=servernamehere ;
integrated security=yes; initial
catalog=databasenamehere�
2
SQL Server
Authentication
We can submit SQL
Server username and
password to SQL
Server.
�data source=servernamehere ;
user id=usernamehere ;
password=passwordhere ; initial
catalog=databasenamehere�
SqlConnection � Windows Authentication �
Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �WindowsAuthExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �WindowsAuthExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
namespace WindowsAuthExample
class Program
static void Main()
//create reference variable
SqlConnection cn;
//create object
cn = new SqlConnection();
//calling properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
//calling methods
Console.WriteLine(cn.State); //Output: Closed
cn.Open();
Console.WriteLine(cn.State); //Output: Open
cn.Close();
Console.WriteLine(cn.State); //Output: Closed
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
SqlConnection � SQL Server Authentication
� Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �SqlServerAuthExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �SqlServerAuthExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
namespace SqlServerAuthExample
class Program
static void Main()
//create reference variable
SqlConnection cn;
//create object
cn = new SqlConnection();
//calling properties
cn.ConnectionString = "data source=localhost; user id=sa;
password=123; initial catalog=company";
//calling methods
Console.WriteLine(cn.State); //Output: Closed
cn.Open();
Console.WriteLine(cn.State); //Output: Open
cn.Close();
Console.WriteLine(cn.State); //Output: Closed
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
The "SqlCommand" class in ADO.NET
System.Data.SqlClient.SqlCommand
� The �SqlCommand� is a pre-defined class in a namespace called
�System.Data.SqlClient�.
� This class�s object is used to execute an SQL statement or stored procedure
through database connection.
� It requires to use SqlConnection class, to connect with database.
� It requires to use SqlParameter class, to pass parameters to DBMS.
Properties of �SqlCommand� class:
Sl.
No
Property
Data Type
Description
CommandText
string
Represents the sql statement or store
procedure name, which has to be
executed at the DBMS.
Syntax: referencevariable.CommandText
= �sql statement | stored procedure name
here�;
Connection
SqlConnection
Represents the connection object, based
on which the command has to be
executed.
Syntax: referencevariable.Connection =
ReferenceVariableOfSqlConnectionClass;
a) Text = Represents a command with
a normal SQL statement, such as
SELECT | INSERT | UPDATE | DELETE
etc.
b) StoredProcedure = Represents a
command with stored procedure.
CommandType
CommandType
Represents type of the command.
Options: Text | StoredProcedure
Syntax: referencevariable.CommandType
=
System.Data.CommandType.Optionhere;
Parameters
List<SqlParameter>
Represents the collection of parameters
that are to be passed to DBMS in order to
execute the command.
Syntax:
referencevariable.Parameters.Add(ReferenceVariableOfSqlParameter)
Transaction
SqlTransaction
Represents the transaction, in which the
command is a part.
Syntax: referencevariable.Transaction =
ReferenceVariableOfSqlTransaction;
Constructors of �SqlCommand� class:
Sl.
No
Constructor
Description
SqlCommand()
Initializes nothing.
Syntax: new SqlCommand();
SqlCommand(string
CommandText,
SqlConnection
connection)
Initializes �CommandText� and �Connection�
properties.
Syntax: new SqlCommand(�command text here�, cn);
Methods of �SqlCommand� class:
Sl.
No
Method
Return Data
Type
Description
ExecuteScalar()
object
Executes the SELECT statement and
returns only one result value.
This method requires the connection
in �Open� status.
Syntax:
referencevariable.ExecuteScalar()
ExecuteReader()
SqlDataReader
Executes the SELECT statement &
creates and returns an object of
SqlDataReader class.
This method requires the connection
in �Open� status.
Syntax:
referencevariable.ExecuteReader()
ExecuteNonQuery(
)
int
Executes the INSERT | UPDATE |
DELETE statement & returns the no.
of rows affected.
This method requires the connection
in �Open� status.
Syntax:
referencevariable.ExecuteNonQuery()
ADO.NET - ExecuteScalar
ExecuteScalar
� �ExecuteScalar� method is used to execute a �SELECT statement� or �stored
procedure� and get the single result value.
Steps for development of �ExecuteScalar� method:
� Import the namespace:
o using System.Data.SqlClient;
� Create reference variables:
o SqlConnection cn;
o SqlCommand cmd;
� Create objects:
o cn = new SqlConnection();
o cmd = new SqlCommand();
� Call properties
o cmd.CommandText = �comamd text here�;
o cmd.Connection = cn;
� Call methods
o cn.Open();
o object variablename = cmd.ExecuteScalar( );
o cn.Close();
SqlCommand � ExecuteScalar � Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ExecuteScalarExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ExecuteScalarExample�. Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
namespace ExecuteScalarExample
class Program
static void Main()
/* create reference variables */
SqlConnection cn;
SqlCommand cmd;
/* create objects */
cn = new SqlConnection();
cmd = new SqlCommand();
/* call properties */
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "select EmpName from Employees where
EmpID=1";
cmd.Connection = cn;
/* call methods */
cn.Open();
object obj = cmd.ExecuteScalar();
cn.Close();
string n = Convert.ToString(obj);
string msg = "Emp Name: " + n;
Console.WriteLine(msg);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
SqlCommand � ExecuteScalar � Example 2
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ExecuteScalarExample2�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ExecuteScalarExample2�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
namespace ExecuteScalarExample2
class Program
static void Main()
/* create reference variables */
SqlConnection cn;
SqlCommand cmd;
/* create objects */
cn = new SqlConnection();
cmd = new SqlCommand();
/* call properties */
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "select count(*) from Employees";
cmd.Connection = cn;
/* call methods */
cn.Open();
object obj = cmd.ExecuteScalar();
cn.Close();
string n = Convert.ToString(obj);
Console.WriteLine("Emps Count: " + n);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET � Connection Oriented Model �
Introduction
ADO.NET Connection Oriented Model
� The �ADO.NET Connection Oriented Model� concept is used to read the
data from database in �record-by-record� (row-by-row) approach.
� ADO.NET sends request to the database server and gets only one record at-
a-time. It stores the current record in an object of �SqlDataReader� class.
� The connection should be in �Open� status, while retrieving data from
database.
Advantages of Connection Oriented Model:
� At-a-time ONLY ONE record will be stored in .net application memory
(RAM). So it requires less amount of memory.
Dis-advantages of Connection Oriented Model:
� It is a bit slow-process because of �record-by-record� approach.
� It supports �sequential retrieval of records�. We can�t retrieve a record
based on its index. We can�t retrieve records randomly or in reverse order.
List of classes required for ADO.NET Connection Oriented
Model:
1. System.Data.SqlClient.SqlConnection
o Used to connect with SQL Server.
2. System.Data.SqlClient.SqlCommand
o Used to send and execute an SQL statement to SQL Server.
3. System.Data.SqlClient.SqlDataReader
o Used to read records one-by-one.
The "SqlDataReader" class in ADO.NET
System.Data.SqlClient.SqlDataReader
� The �SqlDataReader� is a pre-defined class in a namespace called
�System.Data.SqlClient�.
� This class�s object is used to store a single record, while retrieving data from
database in �ADO.NET Connection Oriented Model�.
� It occupies the memory, which is enough for storing single database record.
� �SqlDataReader� is useful only in �ADO.NET Connection Oriented Model�.
Properties of �SqlDataReader� class:
Sl.
No
Property
Data
Type
Description
[column index]
object
Retrieves the column value in the current
record, based on the column index.
Syntax: referencevariable [column index]
[�column name�]
object
Retrieves the column value in the current
record, based on the column name.
Syntax: referencevariable [�column name�]
FieldCount
int
Represents the no. of fields (columns) in the
current record.
Syntax: referencevariable.FieldCount
4
HasRows
bool
Represents a Boolean value, whether the
datareader object has any rows or not.
Syntax: referencevariable.HasRows
Constructors of �SqlDataReader� class:
Sl.
No
Constructor
Description
No constructors
Methods of �SqlDataReader� class:
Sl.
No
Method
Return
Data
Type
Description
Read()
bool
Reads the next record into the
DataReader.
It returns �true�, if data found.
It returns �false�, if it is reached to
end of records.
Syntax: referencevariable.Read()
GetValue(int columnindex)
object
Returns the value of the specified
column in the current record.
Syntax:
referencevariable.GetValue(int
columnindex)
ADO.NET � Connection Oriented Model
Steps for development of �ADO.NET Connection Oriented
Model�:
� Import the namespace:
o using System.Data.SqlClient;
� Create reference variables:
o SqlConnection cn;
o SqlCommand cmd;
o SqlDataReader dr;
� Create objects:
o cn = new SqlConnection();
o cmd = new SqlCommand();
Note: We are creating an object for �SqlDataReader�
class; because it will be created automatically when
we call ExecuteReader() method.
� Call properties
o cmd.CommandText = �comamd text here�;
o cmd.Connection = cn;
� Call methods
o cn.Open();
o dr = cmd.ExecuteReader( );
o dr.Read();
o dr[�column name�];
o cn.Close();
ADO.NET Connection Oriented Model �
Single Record � Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �COMSingleRecordExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �COMSingleRecordExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
namespace COMSingleRecordExample
class Program
static void Main()
/* create reference variables */
SqlConnection cn;
SqlCommand cmd;
SqlDataReader dr;
/* create objects */
cn = new SqlConnection();
cmd = new SqlCommand();
/* call properties */
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "select * from Employees where empid=1";
cmd.Connection = cn;
/* call methods */
cn.Open();
dr = cmd.ExecuteReader();
if (dr.Read())
object obj1, obj2, obj3;
obj1 = dr["EmpID"];
obj2 = dr["EmpName"];
obj3 = dr["Salary"];
int eid;
string ename;
decimal sal;
eid = Convert.ToInt32(obj1);
ename = Convert.ToString(obj2);
sal = Convert.ToDecimal(obj3);
Console.WriteLine("EmpID: " + eid);
Console.WriteLine("EmpName: " + ename);
Console.WriteLine("Salary: " + sal);
cn.Close();
Console.ReadKey();
}
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET Connection Oriented Model �
Multiple Records � Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �COMMultipleRecordsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �COMMultipleRecordsExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
namespace COMMultipleRecordsExample
class Program
static void Main()
/* create reference variables */
SqlConnection cn;
SqlCommand cmd;
SqlDataReader dr;
/* create objects */
cn = new SqlConnection();
cmd = new SqlCommand();
/* call properties */
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "select * from Employees";
cmd.Connection = cn;
/* call methods */
cn.Open();
dr = cmd.ExecuteReader();
while (dr.Read())
object obj1, obj2, obj3;
obj1 = dr["EmpID"];
obj2 = dr["EmpName"];
obj3 = dr["Salary"];
int eid;
string ename;
decimal sal;
eid = Convert.ToInt32(obj1);
ename = Convert.ToString(obj2);
sal = Convert.ToDecimal(obj3);
Console.WriteLine("EmpID: " + eid + "\nEmpName: " + ename +
"\nSalary: " + sal + "\n");
cn.Close();
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
The "SqlParameter" class in ADO.NET
System.Data.SqlClient.SqlParameter
� The �SqlParameter� is a pre-defined class in a namespace called
�System.Data.SqlClient�.
� This class�s object represents a parameter (name and value), that is to be
passed to DBMS for execution of command.
� It is useful allover in ADO.NET, such as ExecuteScalar, Connection Oriented
Model, Disconnected Model, Non Query Operations, Stored Procedures,
Transactions etc.
Properties of �SqlParamter� class:
Sl.
No
Property
Data Type
Description
ParameterName
string
Represents name of the parameter.
Syntax:
referencevariable.ParameterName
= �parameter name here�
Value
object
Represents the actual value of the
parameter.
Syntax: referencevariable.Value
DbType
DbType
Represents the database data type
of the parameter.
Syntax: referencevariable.DbType =
DbType.Optionhere;
4
Direction
ParameterDirection
Represents direction of the
parameter, whether it has to be
given to DBMS or has to be
retrieved from DBMS.
Options: Input | Output |
InputOutput | ReturnValue
Syntax: referencevariable.Direction
= ParameterDirection.Optionhere;
Constructors of �SqlParameter� class:
Sl.
No
Constructor
Description
SqlParameter()
Initializes nothing.
Syntax: new SqlParameter();
SqlParameter(string
ParameterName, object Value)
Initializes ParameterName and Value
properties.
Syntax: new SqlParameter(�parameter
name here�, value here);
Steps for development of �SqlParameter�:
� Import the namespace:
o using System.Data.SqlClient;
� Create reference variable:
o SqlParameter p;
� Create object:
o p = new SqlParameter();
� Call properties
o p.ParameterName = �parameter name here�;
o p.Value = �value here�;
� Add parameter to command:
o cmd.Parameters.Add(p);
ADO.NET Connection Oriented Model �
SqlParameter � Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �COMSqlParameterExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �COMSqlParameterExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
namespace COMSqlParameterExample
class Program
static void Main()
//get empid from keyboard
Console.Write("Emp ID: ");
int n = Convert.ToInt32(Console.ReadLine());
/* create reference variables */
SqlConnection cn;
SqlCommand cmd;
SqlParameter p1;
SqlDataReader dr;
/* create objects */
cn = new SqlConnection();
cmd = new SqlCommand();
p1 = new SqlParameter();
/* call properties */
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "select * from Employees where
empid=@EmpID";
cmd.Connection = cn;
p1.ParameterName = "@EmpID";
p1.Value = n;
cmd.Parameters.Add(p1);
/* call methods */
cn.Open();
dr = cmd.ExecuteReader();
if (dr.Read())
object obj1, obj2;
obj1 = dr["EmpName"];
obj2 = dr["Salary"];
string ename;
decimal sal;
ename = Convert.ToString(obj1);
sal = Convert.ToDecimal(obj2);
Console.WriteLine("Emp Name: " + ename);
Console.WriteLine("Salary: " + sal);
else
{
Console.WriteLine("No data found");
cn.Close();
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Enter EmpID as �1� and press Enter.
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET Disconnected Model
ADO.NET Disconnected Model
� The �System.Data.SqlClient.SqlDataAdapter� class�s object is used to
convert the data from �result-set� format to �data-set� format.
o Resultset = The data (rows and columns) that is returned from SQL
server, after execution of a SELECT statement.
o DataSet = The data that is stored in .net application memory (RAM) in
the form of objects.
� It loads all records at-once.
� �ADO.NET Disconnected Model� is a concept to retrieve data from database.
It is implemented using �SqlDataAdapter�.
� After loading all records at-once, the connection can be closed. That�s why it
is called �ADO.NET Disconnected Model�.
� Advantages of Disconnected Model:
o At-a-time ALL records will be stored (loaded) into .net application
memory (RAM). After that you can disconnect from database. So your
app runs faster.
o We can retrieve a record based on the index.
� Dis-advantages of Disconnected Model:
o ALL records need to be stored in RAM, up to end of the .net
application, so it may be burden on the RAM, if there are so many
records.
. Properties
. SqlCommand SelectCommand: It represents the object of SqlCommand
class, based on which the data is to be retrieved from database.
. Methods
. Fill(DataSet dataset): It executes the SELECT statement, converts the
resultset into dataset and also stores the data in dataset.
. Update(DataSet dataset): It updates the changes made in the dataset
to the database.
. Constructors
. SqlDataAdapter(): It initializes nothing.
. SqlDataAdapter(SqlCommand SelectCommand): It initializes
SelectCommand property.
The �SqlDataAdapter� class
The �System.Data.SqlClient.SqlDataAdapter� class
The �SqlDataAdapter� class has following members:
The �DataSet� class
System.Data.DataSet
� DataSet is used in ADO.NET Disconnected Model.
� DataSet temporarily stores the data that is retrieved from database.
� DataSet internally uses XML.
� DataSet can contains multiple tables.
� Every table in DataSet is treated as an object of �System.Data.DataTable�
class.
� Every column in DataTable is treated as an object of
�System.Data.DataColumn� class.
� Every row in DataTable is treated as an object of �System.Data.DataRow�
class.
DataSet - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DataSetExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DataSetExample�.
� Click on OK.
Program.cs
/* Expected data:
Categories:
CategoryID CategoryName
1 ab
2 cd
Products:
ProductID ProductName Cost
101 prod1 400
102 prd2 500
103 prd3 600
*/
using System;
using System.Data;
namespace DataSetExample
class Program
static void Main()
//creating dataset
DataSet ds = new DataSet();
//creating 2 tables
DataTable dt1 = new DataTable() { TableName = "Categories" };
DataTable dt2 = new DataTable() { TableName = "Products" };
//creating 2 columns for table1
DataColumn col1 = new DataColumn() { ColumnName = "CategoryID",
DataType = typeof(int) };
DataColumn col2 = new DataColumn() { ColumnName =
"CategoryName", DataType = typeof(string) };
//creating 3 columns for table2
DataColumn col3 = new DataColumn() { ColumnName = "ProductID",
DataType = typeof(int) };
DataColumn col4 = new DataColumn() { ColumnName =
"ProductName", DataType = typeof(string) };
DataColumn col5 = new DataColumn() { ColumnName = "Cost",
DataType = typeof(decimal) };
//adding columns to table1
dt1.Columns.Add(col1);
dt1.Columns.Add(col2);
//adding columns to table2
dt2.Columns.Add(col3);
dt2.Columns.Add(col4);
dt2.Columns.Add(col5);
//creating 2 rows for table1
DataRow drow1 = dt1.NewRow();
DataRow drow2 = dt1.NewRow();
//creating 3 rows for table2
DataRow drow3 = dt2.NewRow();
DataRow drow4 = dt2.NewRow();
DataRow drow5 = dt2.NewRow();
//adding rows to table1
dt1.Rows.Add(drow1);
dt1.Rows.Add(drow2);
//adding rows to table2
dt2.Rows.Add(drow3);
dt2.Rows.Add(drow4);
dt2.Rows.Add(drow5);
//adding tables to dataset
ds.Tables.Add(dt1);
ds.Tables.Add(dt2);
/************* setting data **************/
//setting data in table1
dt1.Rows[0]["CategoryID"] = 1;
dt1.Rows[0]["CategoryName"] = "ab";
dt1.Rows[1]["CategoryID"] = 2;
dt1.Rows[1]["CategoryName"] = "cd";
//setting data in table2
dt2.Rows[0]["ProductID"] = 101;
dt2.Rows[0]["ProductName"] = "prod1";
dt2.Rows[0]["Cost"] = 400;
dt2.Rows[1]["ProductID"] = 102;
dt2.Rows[1]["ProductName"] = "prod2";
dt2.Rows[1]["Cost"] = 500;
dt2.Rows[2]["ProductID"] = 103;
dt2.Rows[2]["ProductName"] = "prod3";
dt2.Rows[2]["Cost"] = 600;
//getting data from table1
Console.WriteLine(dt1.TableName + ": ");
for (int i = 0; i < dt1.Rows.Count; i++)
Console.WriteLine(dt1.Rows[i]["CategoryID"] + ", " +
dt1.Rows[i]["CategoryName"]);
Console.WriteLine();
//getting data from table2
Console.WriteLine(dt2.TableName + ": ");
for (int i = 0; i < dt2.Rows.Count; i++)
Console.WriteLine(dt2.Rows[i]["ProductID"] + ", " +
dt2.Rows[i]["ProductName"] + ", " + dt2.Rows[i]["Cost"]);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET Disconnected Model � Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DisconnectedModelExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DisconnectedModelExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
using System.Data;
namespace DisconnectedModelExample
class Program
static void Main()
/* create reference variables */
SqlConnection cn;
SqlCommand cmd;
SqlDataAdapter adp;
DataSet ds;
DataTable dt;
DataRow drow;
/* create objects */
cn = new SqlConnection();
cmd = new SqlCommand();
adp = new SqlDataAdapter();
ds = new DataSet();
/* call properties */
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "select * from Employees";
cmd.Connection = cn;
adp.SelectCommand = cmd;
/* call methods */
adp.Fill(ds);
dt = ds.Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
drow = dt.Rows[i];
object obj1, obj2, obj3;
obj1 = drow["EmpID"];
obj2 = drow["EmpName"];
obj3 = drow["Salary"];
int eid;
string ename;
decimal sal;
eid = Convert.ToInt32(obj1);
ename = Convert.ToString(obj2);
sal = Convert.ToDecimal(obj3);
Console.WriteLine(eid + ", " + ename + ", " + sal);
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET Disconnected Model � Multiple
Tables - Example
Creating Database
� Note: Ignore this step, if you have created
�departmentsandemployeesdatabase� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database departmentsandemployeesdatabase
go
use departmentsandemployeesdatabase
go
create table Departments(
DeptNo int primary key,
DeptName nvarchar(max),
Loc nvarchar(max))
go
create table Employees(
EmpID int primary key,
EmpName varchar(max),
Salary decimal,
DeptNo int references Departments(DeptNo))
go
insert into Departments values(10, 'Acounting', 'New York')
insert into Departments values(20, 'Operations', 'New Delhi')
insert into Departments values(30, 'Sales', 'New Jersy')
insert into Employees values(1, 'Scott', 3000, 10)
insert into Employees values(2, 'Allen', 6500, 10)
insert into Employees values(3, 'Jones', 4577, 20)
insert into Employees values(4, 'James', 9500, 20)
insert into Employees values(5, 'Smith', 3345, 30)
insert into Employees values(6, 'Harry', 2500, 30)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MultipleTablesExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MultipleTablesExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
using System.Data;
namespace MultipleTablesExample
class Program
static void Main()
/* create reference variables */
SqlConnection cn;
SqlCommand cmd;
SqlDataAdapter adp;
DataSet ds;
DataTable dt1, dt2;
DataRow drow;
/* create objects */
cn = new SqlConnection();
cmd = new SqlCommand();
adp = new SqlDataAdapter();
ds = new DataSet();
/* call properties */
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=departmentsandemployeesdatabase";
cmd.CommandText = "select * from Departments select * from
Employees";
cmd.Connection = cn;
adp.SelectCommand = cmd;
/* call methods */
adp.Fill(ds);
/* departments */
Console.WriteLine("Departments:");
dt1 = ds.Tables[0];
int n = 50;
for (int i = 0; i < dt1.Rows.Count; i++)
drow = dt1.Rows[i];
object obj1, obj2, obj3;
obj1 = drow["DeptNo"];
obj2 = drow["DeptName"];
obj3 = drow["Loc"];
int dno;
string dname;
string loc;
dno = Convert.ToInt32(obj1);
dname = Convert.ToString(obj2);
loc = Convert.ToString(obj3);
Console.WriteLine(dno + ", " + dname + ", " + loc);
/* employees */
Console.WriteLine("\nEmployees:");
dt2 = ds.Tables[1];
n += 100;
for (int i = 0; i < dt2.Rows.Count; i++)
drow = dt2.Rows[i];
object obj1, obj2, obj3, obj4;
obj1 = drow["EmpID"];
obj2 = drow["EmpName"];
obj3 = drow["Salary"];
obj4 = drow["DeptNo"];
int eid;
string ename;
decimal sal;
int dno;
eid = Convert.ToInt32(obj1);
ename = Convert.ToString(obj2);
sal = Convert.ToDecimal(obj3);
dno = Convert.ToInt32(obj4);
Console.WriteLine(eid + ", " + ename + ", " + sal + ", " + dno);
Console.ReadKey();
}
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET Disconnected Model � Joins -
Example
Creating Database
� Note: Ignore this step, if you have created
�departmentsandemployeesdatabase� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database departmentsandemployeesdatabase
go
use departmentsandemployeesdatabase
go
create table Departments(
DeptNo int primary key,
DeptName nvarchar(max),
Loc nvarchar(max))
go
create table Employees(
EmpID int primary key,
EmpName varchar(max),
Salary decimal,
DeptNo int references Departments(DeptNo))
go
insert into Departments values(10, 'Acounting', 'New York')
insert into Departments values(20, 'Operations', 'New Delhi')
insert into Departments values(30, 'Sales', 'New Jersy')
insert into Employees values(1, 'Scott', 3000, 10)
insert into Employees values(2, 'Allen', 6500, 10)
insert into Employees values(3, 'Jones', 4577, 20)
insert into Employees values(4, 'James', 9500, 20)
insert into Employees values(5, 'Smith', 3345, 30)
insert into Employees values(6, 'Harry', 2500, 30)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �JoinsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �JoinsExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
using System.Data;
namespace JoinsExample
class Program
static void Main()
/* create reference variables */
SqlConnection cn;
SqlCommand cmd;
SqlDataAdapter adp;
DataSet ds;
DataTable dt;
DataRow drow;
/* create objects */
cn = new SqlConnection();
cmd = new SqlCommand();
adp = new SqlDataAdapter();
ds = new DataSet();
/* call properties */
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=departmentsandemployeesdatabase";
cmd.CommandText = "select * from employees inner join
departments on employees.deptno=departments.deptno";
cmd.Connection = cn;
adp.SelectCommand = cmd;
/* call methods */
adp.Fill(ds);
dt = ds.Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
drow = dt.Rows[i];
object obj1, obj2, obj3, obj4, obj5, obj6;
obj1 = drow["EmpID"];
obj2 = drow["EmpName"];
obj3 = drow["Salary"];
obj4 = drow["DeptNo"];
obj5 = drow["DeptName"];
obj6 = drow["Loc"];
int eid;
string ename;
decimal sal;
int dno;
string dname;
string loc;
eid = Convert.ToInt32(obj1);
ename = Convert.ToString(obj2);
sal = Convert.ToDecimal(obj3);
dno = Convert.ToInt32(obj4);
dname = Convert.ToString(obj5);
loc = Convert.ToString(obj6);
Console.WriteLine(eid + ", " + ename + ", " + sal + ", " + dno + ", " + loc);
Console.ReadKey();
}
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET Non Query - Insertion � Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �InsertionExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �InsertionExample�. Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
namespace InsertionExample
class Program
static void Main()
//create reference variables
SqlConnection cn;
SqlCommand cmd;
//create objects
cn = new SqlConnection();
cmd = new SqlCommand();
//calling properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "insert into Employees values(10, 'qwerty',
4500)";
cmd.Connection = cn;
//calling methods
cn.Open();
int n = cmd.ExecuteNonQuery();
cn.Close();
Console.WriteLine(n + " rows inserted");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET Non Query - Updation � Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �UpdationExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �UpdationExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
namespace UpdationExample
class Program
static void Main()
//create reference variables
SqlConnection cn;
SqlCommand cmd;
//create objects
cn = new SqlConnection();
cmd = new SqlCommand();
//calling properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "update Employees set EmpName='asdf',
Salary=8900 where EmpID=1";
cmd.Connection = cn;
//calling methods
cn.Open();
int n = cmd.ExecuteNonQuery();
cn.Close();
Console.WriteLine(n + " rows updated");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET Non Query - Deletion � Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DeletionExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DeletionExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
namespace DeletionExample
class Program
static void Main(string[] args)
//create reference variables
SqlConnection cn;
SqlCommand cmd;
//create objects
cn = new SqlConnection();
cmd = new SqlCommand();
//calling properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "delete from Employees where EmpID=3";
cmd.Connection = cn;
//calling methods
cn.Open();
int n = cmd.ExecuteNonQuery();
cn.Close();
Console.WriteLine(n + " rows deleted");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET Non Query � Insertion � With
SqlParameter � Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �InsertionSqlParameterExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �InsertionSqlParameterExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
namespace InsertionSqlParameterExample
class Program
static void Main()
//accept values from keyboard
Console.Write("Enter EmpID: ");
int empId = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter EmpName: ");
string empName = Console.ReadLine();
Console.Write("Enter Salary: ");
decimal sal = Convert.ToDecimal(Console.ReadLine());
//create reference variables
SqlConnection cn;
SqlCommand cmd;
SqlParameter p1, p2, p3;
//create objects
cn = new SqlConnection();
cmd = new SqlCommand();
p1 = new SqlParameter();
p2 = new SqlParameter();
p3 = new SqlParameter();
//calling properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "insert into Employees values(@empid,
@empname, @salary)";
cmd.Connection = cn;
p1.ParameterName = "@empid";
p2.ParameterName = "@empname";
p3.ParameterName = "@salary";
p1.Value = empId;
p2.Value = empName;
p3.Value = sal;
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3);
//calling methods
cn.Open();
int n = cmd.ExecuteNonQuery();
cn.Close();
Console.WriteLine(n + " rows inserted");
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET Non Query � Updation � With
SqlParameter � Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �UpdationSqlParameterExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �UpdationSqlParameterExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
namespace UpdationSqlParameterExample
class Program
static void Main()
//accept values from keyboard
Console.Write("Enter Existing EmpID: ");
int empId = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter EmpName: ");
string empName = Console.ReadLine();
Console.Write("Enter Salary: ");
decimal sal = Convert.ToDecimal(Console.ReadLine());
//create reference variables
SqlConnection cn;
SqlCommand cmd;
SqlParameter p1, p2, p3;
//create objects
cn = new SqlConnection();
cmd = new SqlCommand();
p1 = new SqlParameter();
p2 = new SqlParameter();
p3 = new SqlParameter();
//calling properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "update Employees set empname=@empname,
salary=@salary where empid=@empid";
cmd.Connection = cn;
p1.ParameterName = "@empid";
p2.ParameterName = "@empname";
p3.ParameterName = "@salary";
p1.Value = empId;
p2.Value = empName;
p3.Value = sal;
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3);
//calling methods
cn.Open();
int n = cmd.ExecuteNonQuery();
cn.Close();
Console.WriteLine(n + " rows updated");
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET Non Query � Deletion � With
SqlParameter � Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DeletionSqlParameterExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DeletionSqlParameterExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
namespace DeletionSqlParameterExample
class Program
static void Main()
//accept values from keyboard
Console.Write("Enter Existing EmpID: ");
int empId = Convert.ToInt32(Console.ReadLine());
//create reference variables
SqlConnection cn;
SqlCommand cmd;
SqlParameter p1;
//create objects
cn = new SqlConnection();
cmd = new SqlCommand();
p1 = new SqlParameter();
//calling properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "delete from Employees where empid=@empid";
cmd.Connection = cn;
p1.ParameterName = "@empid";
p1.Value = empId;
cmd.Parameters.Add(p1);
//calling methods
cn.Open();
int n = cmd.ExecuteNonQuery();
cn.Close();
Console.WriteLine(n + " rows deleted");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
Stored Procedures Calling in ADO.NET
Calling Stored Procedures using ADO.NET
� Stored procedure is a collection of SQL statements that will be stored in
database.
� Stored procedures can be called from .net application.
� Stored procedures will be compiled once and executes every time when we
call it. This is called �pre-compilation�.
� Stored procedures improve performance because of pre-compilation.
� Stored procedures support to separate work between database developer
and .net developer in real time.
� Stored procedures are best for performing multiple and complex database
operations with a single database call.
Syntax of creating stored procedure in SQL Server
create procedure procedurename
(@parameter1 datatype, @parameter2 datatype, �)
as begin
code here
end
go
ADO.NET Non Query � Insertion � With
Stored Procedures � Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
create procedure InsertEmployee(
@EmpID int,
@EmpName nvarchar(max),
@Salary decimal
as begin
insert into Employees values(@EmpID, @EmpName, @Salary)
end
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �InsertionWithSPExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �InsertionWithSPExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
using System.Data;
namespace InsertionWithSPExample
class Program
static void Main()
//accept values from keyboard
Console.Write("Enter EmpID: ");
int empId = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter EmpName: ");
string empName = Console.ReadLine();
Console.Write("Enter Salary: ");
decimal sal = Convert.ToDecimal(Console.ReadLine());
//create reference variables
SqlConnection cn;
SqlCommand cmd;
SqlParameter p1, p2, p3;
//create objects
cn = new SqlConnection();
cmd = new SqlCommand();
p1 = new SqlParameter();
p2 = new SqlParameter();
p3 = new SqlParameter();
//calling properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "InsertEmployee";
cmd.Connection = cn;
cmd.CommandType = CommandType.StoredProcedure;
p1.ParameterName = "@empid";
p2.ParameterName = "@empname";
p3.ParameterName = "@salary";
p1.Value = empId;
p2.Value = empName;
p3.Value = sal;
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3);
//calling methods
cn.Open();
int n = cmd.ExecuteNonQuery();
cn.Close();
Console.WriteLine(n + " rows inserted");
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET Non Query � Updation � With
Stored Procedures � Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
create procedure UpdateEmployee(
@EmpID int,
@EmpName nvarchar(max),
@Salary decimal
as begin
update Employees set EmpName=@EmpName, Salary=@Salary
where EmpID=@EmpID
end
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �UpdationWithSPExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �UpdationWithSPExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
using System.Data;
namespace UpdationWithSPExample
class Program
static void Main()
//accept values from keyboard
Console.Write("Enter Existing EmpID: ");
int empId = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter EmpName: ");
string empName = Console.ReadLine();
Console.Write("Enter Salary: ");
decimal sal = Convert.ToDecimal(Console.ReadLine());
//create reference variables
SqlConnection cn;
SqlCommand cmd;
SqlParameter p1, p2, p3;
//create objects
cn = new SqlConnection();
cmd = new SqlCommand();
p1 = new SqlParameter();
p2 = new SqlParameter();
p3 = new SqlParameter();
//calling properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "UpdateEmployee";
cmd.Connection = cn;
cmd.CommandType = CommandType.StoredProcedure;
p1.ParameterName = "@empid";
p2.ParameterName = "@empname";
p3.ParameterName = "@salary";
p1.Value = empId;
p2.Value = empName;
p3.Value = sal;
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3);
//calling methods
cn.Open();
int n = cmd.ExecuteNonQuery();
cn.Close();
Console.WriteLine(n + " rows updated");
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET Non Query � Deletion � With
Stored Procedures � Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
create procedure DeleteEmployee(
@EmpID int
as begin
delete from Employees
where EmpID=@EmpID
end
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DeletionWithSPExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DeletionWithSPExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
using System.Data;
namespace DeletionWithSPExample
class Program
static void Main()
//accept values from keyboard
Console.Write("Enter Existing EmpID: ");
int empId = Convert.ToInt32(Console.ReadLine());
//create reference variables
SqlConnection cn;
SqlCommand cmd;
SqlParameter p1;
//create objects
cn = new SqlConnection();
cmd = new SqlCommand();
p1 = new SqlParameter();
//calling properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "DeleteEmployee";
cmd.Connection = cn;
cmd.CommandType = CommandType.StoredProcedure;
p1.ParameterName = "@empid";
p1.Value = empId;
cmd.Parameters.Add(p1);
//calling methods
cn.Open();
int n = cmd.ExecuteNonQuery();
cn.Close();
Console.WriteLine(n + " rows deleted");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET - Transactions
ADO.NET Transactions
� A transaction is a �collection of database operations such as insertion,
deletion and updation�.
� ADO.NET transactions are used to roll back the previously executed
database operations, when any database operation is failed in a transaction.
� Example: Funds transfer from one bank account to another bank account.
. Operation 1: Debit the money from source account.
. Operation 2: Credit the money to destination account.
� We use �System.Data.SqlClient.SqlTransaction� class is used to implement
ado.net transactions in the program.
1. cn.BeginTransaction()
. This method creates and starts a new ado.net transaction. It creates and
returns an object for �SqlTransaction� class.
2. transactionReferenceVariable.Commit()
. This method will save (fix) the database operations that are executed
during the current transaction.
3. transactionReferenceVariable.RollBack()
. This method will rollback (cancel) all the previously executed database
operations during the current transaction.
Methods for ADO.NET Transactions:
ADO.NET � Transactions - Example
Creating Database
� Note: Ignore this step, if you have created �transactionsdatabase� database
already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database transactionsdatabase
go
use transactionsdatabase
go
CREATE TABLE AccountsTable(
AccountNo int primary key,
AccountHolderName nvarchar(40),
Balance decimal)
GO
INSERT INTO AccountsTable VALUES (101, 'scott', 10000)
INSERT INTO AccountsTable VALUES (102, 'allen', 5000)
GO
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �TransactionsExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �TransactionsExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
namespace TransactionsExample
class Program
static void Main()
//create reference variables
SqlConnection cn;
SqlTransaction transaction;
SqlCommand cmd1, cmd2;
//create objects
cn = new SqlConnection();
cmd1 = new SqlCommand();
cmd2 = new SqlCommand();
//call properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=transactionsdatabase";
cmd1.CommandText = "update AccountsTable set Balance=Balance-
1000 where AccountNo=101";
cmd2.CommandText = "update AccountsTable set
Balance=Balance+1000 were AccountNo=102";
cmd1.Connection = cn;
cmd2.Connection = cn;
//call methods
cn.Open();
transaction = cn.BeginTransaction();
cmd1.Transaction = transaction;
cmd2.Transaction = transaction;
try
cmd1.ExecuteNonQuery();
Console.WriteLine("First operation done.");
cmd2.ExecuteNonQuery();
Console.WriteLine("Second operation done.");
transaction.Commit(); //save data
Console.WriteLine("Transaction Complete");
catch (Exception)
transaction.Rollback(); //first operation will be rollback
Console.WriteLine("Rollback done!");
}
cn.Close();
Console.ReadKey();
}
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
The "OleDb" namespace in ADO.NET
System.Data.OleDb (Object Linking and Embedding
Database)
� The �System.Data.OleDb� namespace contains classes like
OleDbConnection, OleDbCommand etc. The usage of these classes are same
as SqlConnectoin, SqlCommand etc.
� The System.Data.OleDb namespace is used to connect and interact with
various databases like Oracle, Excel, Access etc.
Classes in �System.Data.OleDb� namespace
Sl.
No
SqlClient namespace
(For SQL Server)
�OleDb� namespace
(For Oracle, Excel, Access)
System.Data.SqlClient.SqlConnection
System.Data.OleDb.OleDbConnection
System.Data.SqlClient.SqlCommand
System.Data.OleDb.OleDbCommand
System.Data.SqlClient.SqlDataReader
System.Data.OleDb.OleDbDataReader
System.Data.SqlClient.SqlParameter
System.Data.OleDb.OleDbParameter
System.Data.SqlClient.SqlDataAdapter
System.Data.OleDb.OleDbDataAdapter
6
System.Data.SqlClient.SqlCommandBuilder
System.Data.OleDb.OleDbCommandBuilder
System.Data.SqlClient.SqlTransaction
System.Data.OleDb.OleDbTransaction
System.Data.DataSet
System.Data.DataSet
System.Data.DataTable
System.Data.DataTable
10
System.Data.DataRow
System.Data.DataRow
11
System.Data.DataColumn
System.Data.DataColumn
Connection Strings in ADO.NET
Connection string for SQL Server
� "data source=Servernamehere; integrated security=yes; initial
catalog=Databasenamehere"
(or)
� "data source=Servernamehere; user id=Usernamehere;
password=Passwordhere; initial catalog=Databasenamehere"
Connection string for Oracle
� "provider=msdaora.1; user id=Usernamehere; password=Passwordhere"
Connection string for MS Access
� @"provider=Microsoft.Ace.Oledb.12.0; data source=FilePathHere"
Connection string for MS Excel
� @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=FilePathHere;
Extended Properties='Excel 12.0;HDR=Yes;IMEX=1' "
ADO.NET � Oracle - Example
Installing Oracle Database 11g Expression Edition
� Note: Ignore this step, if you have installed �Oracle 11g Express� already.
� You can download Oracle 11g Express Edition at:
http://www.oracle.com/technetwork/database/database-
technologies/express-edition/downloads/index.html
� Open �Oracle 11g Express� folder.
� Double click on �setup.exe�.
� Click on �Yes�.
� Please wait while it loads�
� Click on �Next�.
� Click on �I accept the terms in the license agreement�.
� Click on �Next�.
� Click on �Next�.
� Enter the password as �123�.
� Enter the confirm password �123�.
� Click on �Next�.
� Click on �Install�.
� Installation may take around 10 minutes.
o Click on OK if it shows one or two errors while installing.
� Click on �Finish�.
� Restart the PC.
Creating table in Oracle
� Note: Ignore this step, if you have created �employees� table in Oracle
already.
� Go to �Start� � �Oracle 11g Express Edition� � �Run SQL Command Line�.
� Type the following script and press Enter.
connect system/123;
create table Employees(
EmpID int primary key,
EmpName varchar2(40),
Salary decimal);
insert into Employees values(1, 'scott', 1040);
insert into Employees values(2, 'james', 9821);
insert into Employees values(3, 'jones', 7721);
commit;
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �OracleExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �OracleExample�.
� Click on OK.
Program.cs
using System;
using System.Data.OleDb;
using System.Data;
namespace OracleExample
class Program
static void Main()
/* create reference variables */
OleDbConnection cn;
OleDbCommand cmd;
OleDbDataAdapter adp;
DataSet ds;
DataTable dt;
DataRow drow;
/* create objects */
cn = new OleDbConnection();
cmd = new OleDbCommand();
adp = new OleDbDataAdapter();
ds = new DataSet();
/* call properties */
cn.ConnectionString = "user id=system; password=123;
provider=msdaora.1";
cmd.CommandText = "select * from Employees";
cmd.Connection = cn;
adp.SelectCommand = cmd;
/* call methods */
adp.Fill(ds);
dt = ds.Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
drow = dt.Rows[i];
object obj1, obj2, obj3;
obj1 = drow["EmpID"];
obj2 = drow["EmpName"];
obj3 = drow["Salary"];
int eid;
string ename;
decimal sal;
eid = Convert.ToInt32(obj1);
ename = Convert.ToString(obj2);
sal = Convert.ToDecimal(obj3);
Console.WriteLine(eid + ", " + ename + ", " + sal);
Console.ReadKey();
}
}
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET � MS Access - Example
Installing Access Database Engine
� Install MS Office 2007 or 2010 or 2013 or 2016. You can download MS Office
2016 at: https://support.office.com/en-us/article/Download-and-install-or-
reinstall-Office-365-Office-2016-or-Office-2013-on-your-PC-or-Mac-
4414eaaf-0478-48be-9c42-23adc4716658?ui=en-US&rs=en-US&ad=US
� Additionally, we have to install �Access Database Engine�.
� Note: Ignore this step, if you have installed �Access Database Engine�
already.
� You can download �MS Access Database Engine� at:
https://www.microsoft.com/en-in/download/details.aspx?id=13255
� To install �Access Database Engine�, go to �Access Database Engine� folder.
� Double click on �AccessDatabaseEngine�.
� Click on �Yes�.
� Check the checkbox �I accept the terms in the License Agreement�.
� Click on �Next�.
� Click on �Install�.
� Installation may take around 1 or 2 minutes.
� Click on OK.
Creating table in MS Access
� Go to �Start� � �Access 2016�.
� Click on �Blank desktop database�.
� Type the file name as �Database1.accdb�.
� Click on the folder icon and select �C:\CSharp� folder.
� Click on OK.
� Click on �Create�.
� Right click on �Table1� and click on �Design View�.
� Type the table name as �Employees�.
� Click on OK.
� Type the table structure as follows:
� Right click �Employees� and click on �Open�.
� Click on �Yes�.
� Type the data as follows:
� Save the file.
� Close �Microsoft Access 2016�.
� Make sure �Database1.accdb� file exist in �C:\CSharp� folder.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MSAccessExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MSAccessExample�.
� Click on OK.
Program.cs
using System;
using System.Data.OleDb;
using System.Data;
namespace MSAccessExample
class Program
static void Main()
/* create reference variables */
OleDbConnection cn;
OleDbCommand cmd;
OleDbDataAdapter adp;
DataSet ds;
DataTable dt;
DataRow drow;
/* create objects */
cn = new OleDbConnection();
cmd = new OleDbCommand();
adp = new OleDbDataAdapter();
ds = new DataSet();
/* call properties */
cn.ConnectionString = @"provider=Microsoft.Ace.Oledb.12.0; data
source=C:\CSharp\Database1.accdb";
cmd.CommandText = "select * from Employees";
cmd.Connection = cn;
adp.SelectCommand = cmd;
/* call methods */
adp.Fill(ds);
dt = ds.Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
drow = dt.Rows[i];
object obj1, obj2, obj3;
obj1 = drow["EmpID"];
obj2 = drow["EmpName"];
obj3 = drow["Salary"];
int eid;
string ename;
decimal sal;
eid = Convert.ToInt32(obj1);
ename = Convert.ToString(obj2);
sal = Convert.ToDecimal(obj3);
Console.WriteLine(eid + ", " + ename + ", " + sal);
Console.ReadKey();
}
}
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET � MS Excel - Example
Installing Access Database Engine
� Install MS Office 2007 or 2010 or 2013 or 2016. You can download MS Office
2016 at: https://support.office.com/en-us/article/Download-and-install-or-
reinstall-Office-365-Office-2016-or-Office-2013-on-your-PC-or-Mac-
4414eaaf-0478-48be-9c42-23adc4716658?ui=en-US&rs=en-US&ad=US
� Additionally, we have to install �Access Database Engine�.
� Note: Ignore this step, if you have installed �Access Database Engine�
already.
� You can download �MS Access Database Engine� at:
https://www.microsoft.com/en-in/download/details.aspx?id=13255
� To install �Access Database Engine�, go to �Access Database Engine� folder.
� Double click on �AccessDatabaseEngine�.
� Click on �Yes�.
� Check the checkbox �I accept the terms in the License Agreement�.
� Click on �Next�.
� Click on �Install�.
� Installation may take around 1 or 2 minutes.
� Click on OK.
Creating work book in MS Excel
� Go to �Start� � �Excel 2016�.
� Click on �Blank Workbook�.
� Type the data as follows:
� Go to �File� � �Save� � �This PC� � �Browse�.
� Select the folder as �C:\CSharp�.
� Type the filename as �Book1.xlsx�.
� Click on �Save�.
� Close �Microsoft Excel 2016�.
� Make sure �Book1.xlsx� file exist in �C:\CSharp� folder.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �MSExcelExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �MSExcelExample�.
� Click on OK.
Program.cs
using System;
using System.Data.OleDb;
using System.Data;
namespace MSExcelExample
class Program
static void Main()
/* create reference variables */
OleDbConnection cn;
OleDbCommand cmd;
OleDbDataAdapter adp;
DataSet ds;
DataTable dt;
DataRow drow;
/* create objects */
cn = new OleDbConnection();
cmd = new OleDbCommand();
adp = new OleDbDataAdapter();
ds = new DataSet();
/* call properties */
cn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; Data
Source=C:\CSharp\Book1.xlsx; Extended Properties='Excel
12.0;HDR=Yes;IMEX=1' ";
cmd.CommandText = "select * from [Sheet1$]";
cmd.Connection = cn;
adp.SelectCommand = cmd;
/* call methods */
adp.Fill(ds);
dt = ds.Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
drow = dt.Rows[i];
object obj1, obj2, obj3;
obj1 = drow["EmpID"];
obj2 = drow["EmpName"];
obj3 = drow["Salary"];
int eid;
string ename;
decimal sal;
eid = Convert.ToInt32(obj1);
ename = Convert.ToString(obj2);
sal = Convert.ToDecimal(obj3);
Console.WriteLine(eid + ", " + ename + ", " + sal);
Console.ReadKey();
}
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET � SQL Server to Oracle - Example
Creating SQL Server Database
� Note: Ignore this step, if you have created �company� database in SQL
Server, already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Installing Oracle Database 11g Expression Edition
� Install �Oracle 11g Express� as shown in the previous example.
� You can download Oracle 11g Express Edition at:
http://www.oracle.com/technetwork/database/database-
technologies/express-edition/downloads/index.html
Creating table in Oracle
� Note: Ignore this step, if you have created �employees2� table in Oracle
already.
� Go to �Start� � �Oracle 11g Express Edition� � �Run SQL Command Line�.
� Type the following script and press Enter.
connect system/123;
create table Employees2(
EmpID int,
EmpName varchar2(40),
Salary decimal);
commit;
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �SqlServerToOracleExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �SqlServerToOracleExample�.
� Click on OK.
Program.cs
//Copy data from "SqlServer" to "Oracle"
using System;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Data;
namespace SqlServerToOracleExample
class Program
static void Main()
/* create reference variables */
SqlConnection cn;
SqlCommand cmd;
SqlDataAdapter adp;
DataSet ds;
DataTable dt;
DataRow drow;
/* create objects */
cn = new SqlConnection();
cmd = new SqlCommand();
adp = new SqlDataAdapter();
ds = new DataSet();
/* call properties */
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "select * from Employees";
cmd.Connection = cn;
adp.SelectCommand = cmd;
/* call methods */
adp.Fill(ds);
dt = ds.Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
drow = dt.Rows[i];
object obj1, obj2, obj3;
obj1 = drow["EmpID"];
obj2 = drow["EmpName"];
obj3 = drow["Salary"];
int eid;
string ename;
decimal sal;
eid = Convert.ToInt32(obj1);
ename = Convert.ToString(obj2);
sal = Convert.ToDecimal(obj3);
InsertIntoOracle(eid, ename, sal);
Console.WriteLine(dt.Rows.Count + " records copied");
Console.ReadKey();
private static void InsertIntoOracle(int eid, string ename, decimal sal)
{
//create reference variables
OleDbConnection cn;
OleDbCommand cmd;
//create objects
cn = new OleDbConnection();
cmd = new OleDbCommand();
//calling properties
cn.ConnectionString = "user id=system; password=123;
provider=msdaora.1";
cmd.CommandText = string.Format("insert into Employees2
values({0}, '{1}', {2})", eid, ename, sal);
cmd.Connection = cn;
//calling methods
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
Check the data in �Oracle�:
ADO.NET � SQL Server to MS Excel - Example
Creating SQL Server Database
� Note: Ignore this step, if you have created �company� database in SQL
Server, already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Installing Access Database Engine
� Install MS Office 2007 or 2010 or 2013 or 2016. You can download MS Office
2016 at: https://support.office.com/en-us/article/Download-and-install-or-
reinstall-Office-365-Office-2016-or-Office-2013-on-your-PC-or-Mac-
4414eaaf-0478-48be-9c42-23adc4716658?ui=en-US&rs=en-US&ad=US
� Additionally, we have to install �Access Database Engine�, based on the
steps explained in the previous examples.
� Note: Ignore this step, if you have installed �Access Database Engine�
already.
� You can download �MS Access Database Engine� at:
https://www.microsoft.com/en-in/download/details.aspx?id=13255
Creating work book in MS Excel
� Go to �Start� � �Excel 2016�.
� Click on �Blank Workbook�.
� Type the data as follows:
� Go to �File� � �Save� � �This PC� � �Browse�.
� Select the folder as �C:\CSharp�.
� Type the filename as �Book2.xlsx�.
� Click on �Save�.
� Close �Microsoft Excel 2016�.
� Make sure �Book2.xlsx� file exist in �C:\CSharp� folder.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �SqlServerToExcelExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �SqlServerToExcelExample�.
� Click on OK.
Program.cs
//Copy data from "SqlServer" to "Excel"
using System;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Data;
namespace SqlServerToExcelExample
class Program
static void Main()
/* create reference variables */
SqlConnection cn;
SqlCommand cmd;
SqlDataAdapter adp;
DataSet ds;
DataTable dt;
DataRow drow;
/* create objects */
cn = new SqlConnection();
cmd = new SqlCommand();
adp = new SqlDataAdapter();
ds = new DataSet();
/* call properties */
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "select * from Employees";
cmd.Connection = cn;
adp.SelectCommand = cmd;
/* call methods */
adp.Fill(ds);
dt = ds.Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
drow = dt.Rows[i];
object obj1, obj2, obj3;
obj1 = drow["EmpID"];
obj2 = drow["EmpName"];
obj3 = drow["Salary"];
int eid;
string ename;
decimal sal;
eid = Convert.ToInt32(obj1);
ename = Convert.ToString(obj2);
sal = Convert.ToDecimal(obj3);
InsertIntoExcel(eid, ename, sal);
}
Console.WriteLine(dt.Rows.Count + " records copied");
Console.ReadKey();
private static void InsertIntoExcel(int eid, string ename, decimal sal)
//create reference variables
OleDbConnection cn;
OleDbCommand cmd;
//create objects
cn = new OleDbConnection();
cmd = new OleDbCommand();
//calling properties
cn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; Data
Source=C:\CSharp\Book2.xlsx; Extended Properties='Excel
12.0;HDR=Yes;IMEX=3' ";
cmd.CommandText = string.Format("insert into [Sheet1$] values('{0}',
'{1}', '{2}')", eid, ename, sal);
cmd.Connection = cn;
//calling methods
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
� Check the data in �C:\CSharp\Book2.xlsx� file.
ADO.NET � Oracle to SQL Server - Example
Creating SQL Server Database
� Note: Ignore this step, if you have created �company� database with
�Employees2� table in SQL Server, already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees2(
EmpID int,
EmpName nvarchar(max),
Salary decimal)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Installing Oracle Database 11g Expression Edition
� Install �Oracle 11g Express� as shown in the previous example.
� You can download Oracle 11g Express Edition at:
http://www.oracle.com/technetwork/database/database-
technologies/express-edition/downloads/index.html
Creating table in Oracle
� Note: Ignore this step, if you have created �employees2� table in Oracle
already.
� Go to �Start� � �Oracle 11g Express Edition� � �Run SQL Command Line�.
� Type the following script and press Enter.
connect system/123;
create table Employees2(
EmpID int,
EmpName varchar2(40),
Salary decimal);
insert into Employees2 values(1, 'scott', 1040);
insert into Employees2 values(2, 'james', 9821);
insert into Employees2 values(3, 'jones', 7721);
commit;
Creating Project
� Open Visual Studio 2015. Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �OracleToSqlServerExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �OracleToSqlServerExample�.
� Click on OK.
Program.cs
//Copy data from "Oracle" to "SqlServer"
using System;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Data;
namespace OracleToSqlServerExample
class Program
static void Main()
/* create reference variables */
OleDbConnection cn;
OleDbCommand cmd;
OleDbDataAdapter adp;
DataSet ds;
DataTable dt;
DataRow drow;
/* create objects */
cn = new OleDbConnection();
cmd = new OleDbCommand();
adp = new OleDbDataAdapter();
ds = new DataSet();
/* call properties */
cn.ConnectionString = "user id=system; password=123;
provider=msdaora.1";
cmd.CommandText = "select * from Employees2";
cmd.Connection = cn;
adp.SelectCommand = cmd;
/* call methods */
adp.Fill(ds);
dt = ds.Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
drow = dt.Rows[i];
object obj1, obj2, obj3;
obj1 = drow["EmpID"];
obj2 = drow["EmpName"];
obj3 = drow["Salary"];
int eid;
string ename;
decimal sal;
eid = Convert.ToInt32(obj1);
ename = Convert.ToString(obj2);
sal = Convert.ToDecimal(obj3);
InsertIntoSqlServer(eid, ename, sal);
Console.WriteLine(dt.Rows.Count + " records copied");
Console.ReadKey();
}
private static void InsertIntoSqlServer(int eid, string ename, decimal
sal)
{
//create reference variables
SqlConnection cn;
SqlCommand cmd;
//create objects
cn = new SqlConnection();
cmd = new SqlCommand();
//calling properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = string.Format("insert into Employees2
values({0}, '{1}', {2})", eid, ename, sal);
cmd.Connection = cn;
//calling methods
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
Check the data in �SQL Server�:
ADO.NET � Excel to SQL Server - Example
Creating SQL Server Database
� Note: Ignore this step, if you have created �company� database with
�Employees2� table in SQL Server, already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees2(
EmpID int,
EmpName nvarchar(max),
Salary decimal)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Installing Access Database Engine
� Install MS Office 2007 or 2010 or 2013 or 2016. You can download MS Office
2016 at: https://support.office.com/en-us/article/Download-and-install-or-
reinstall-Office-365-Office-2016-or-Office-2013-on-your-PC-or-Mac-
4414eaaf-0478-48be-9c42-23adc4716658?ui=en-US&rs=en-US&ad=US
� Additionally, we have to install �Access Database Engine�, based on the
steps explained in the previous examples.
� Note: Ignore this step, if you have installed �Access Database Engine�
already.
� You can download �MS Access Database Engine� at:
https://www.microsoft.com/en-in/download/details.aspx?id=13255
Creating Workbook in �Excel�:
� Go to �Start� � �Excel 2016�.
� Click on �Blank Workbook�.
� Type the data as follows:
� Go to �File� � �Save� � �This PC� � �Browse�.
� Select the folder as �C:\CSharp�.
� Type the filename as �Book1.xlsx�.
� Click on �Save�.
� Close �Microsoft Excel 2016�.
� Make sure �Book1.xlsx� file exist in �C:\CSharp� folder.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �ExcelToSqlServerExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �ExcelToSqlServerExample�.
� Click on OK.
Program.cs
//Copy data from "Excel" to "SqlServer"
using System;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Data;
namespace ExcelToSqlServerExample
class Program
static void Main()
/* create reference variables */
OleDbConnection cn;
OleDbCommand cmd;
OleDbDataAdapter adp;
DataSet ds;
DataTable dt;
DataRow drow;
/* create objects */
cn = new OleDbConnection();
cmd = new OleDbCommand();
adp = new OleDbDataAdapter();
ds = new DataSet();
/* call properties */
cn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; Data
Source=C:\CSharp\Book1.xlsx; Extended Properties='Excel
12.0;HDR=Yes;IMEX=1' ";
cmd.CommandText = "select * from [Sheet1$]";
cmd.Connection = cn;
adp.SelectCommand = cmd;
/* call methods */
adp.Fill(ds);
dt = ds.Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
drow = dt.Rows[i];
object obj1, obj2, obj3;
obj1 = drow["EmpID"];
obj2 = drow["EmpName"];
obj3 = drow["Salary"];
int eid;
string ename;
decimal sal;
eid = Convert.ToInt32(obj1);
ename = Convert.ToString(obj2);
sal = Convert.ToDecimal(obj3);
InsertIntoSqlServer(eid, ename, sal);
}
Console.WriteLine(dt.Rows.Count + " records copied");
Console.ReadKey();
private static void InsertIntoSqlServer(int eid, string ename, decimal
sal)
//create reference variables
SqlConnection cn;
SqlCommand cmd;
//create objects
cn = new SqlConnection();
cmd = new SqlCommand();
//calling properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = string.Format("insert into Employees2
values({0}, '{1}', {2})", eid, ename, sal);
cmd.Connection = cn;
//calling methods
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
Check the data in �SQL Server�:
ADO.NET � SQL Server to File - Example
Creating SQL Server Database
� Note: Ignore this step, if you have created �company� database with
�Employees2� table in SQL Server, already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees2(
EmpID int,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015. Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �SqlServerToFileExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �SqlServerToFileExample�. Click on OK.
Program.cs
//Copy data from "SqlServer" to "File"
using System;
using System.Data.SqlClient;
using System.Data;
using System.Diagnostics;
using System.IO;
namespace SqlServerToFileExample
class Program
static void Main()
//create directory if not exists
if (Directory.Exists(@"C:\CSharp") == false)
Directory.CreateDirectory(@"C:\CSharp");
//create reference variables
SqlConnection cn;
SqlCommand cmd;
SqlDataAdapter adp;
DataSet ds;
DataTable dt;
DataRow drow;
FileInfo finfo;
FileStream fs;
StreamWriter sw;
//create objects
cn = new SqlConnection();
cmd = new SqlCommand();
adp = new SqlDataAdapter();
ds = new DataSet();
finfo = new FileInfo(@"C:\CSharp\Employees.txt");
//delete the file if already exists
if (finfo.Exists == true)
finfo.Delete();
//create objects
fs = new FileStream(@"C:\CSharp\Employees.txt", FileMode.Create,
FileAccess.Write);
sw = new StreamWriter(fs);
//call properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "select * from Employees2";
cmd.Connection = cn;
adp.SelectCommand = cmd;
//call methods
adp.Fill(ds);
//read data
dt = ds.Tables[0];
//read data from database record-by-record
for (int i = 0; i < dt.Rows.Count; i++)
//get values
object obj1, obj2, obj3;
drow = dt.Rows[i];
obj1 = drow["EmpID"];
obj2 = drow["EmpName"];
obj3 = drow["Salary"];
int eid = Convert.ToInt32(obj1);
string ename = Convert.ToString(obj2);
double sal = Convert.ToDouble(obj3);
string msg = eid + "," + ename + "," + sal;
//write data to the file
sw.WriteLine(msg);
//close the file
sw.Close();
Console.WriteLine("Data has been written to the following file
successfully.\nC:\\CSharp\\Employees.txt");
//open the file in notepad
Process.Start(@"C:\Windows\System32\notepad.exe",
@"C:\CSharp\Employees.txt");
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET � File to SQL Server - Example
Creating SQL Server Database
� Note: Ignore this step, if you have created �company� database with
�Employees2� table in SQL Server, already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees2(
EmpID int,
EmpName nvarchar(max),
Salary decimal)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �FileToSqlServerExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �FileToSqlServerExample�.
� Click on OK.
Program.cs
//Copy data from "File" to "SqlServer"
using System;
using System.Data.SqlClient;
using System.IO;
namespace FileToSqlServerExample
class Program
static void Main()
//create reference variables
SqlConnection cn;
SqlCommand cmd;
FileInfo finfo;
FileStream fs;
StreamReader sr;
SqlParameter p1, p2, p3;
//create objects
cn = new SqlConnection();
cmd = new SqlCommand();
p1 = new SqlParameter();
p2 = new SqlParameter();
p3 = new SqlParameter();
finfo = new FileInfo(@"C:\CSharp\Employees.txt");
//check whether the file already exists or not
if (finfo.Exists == false)
Console.WriteLine("File not exists.");
Console.ReadKey();
return;
//create objects
fs = new FileStream(@"C:\CSharp\Employees.txt", FileMode.Open,
FileAccess.Read);
sr = new StreamReader(fs);
//call properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "insert into Employees2 values(@empid,
@empname, @salary)";
cmd.Connection = cn;
//call methods
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3);
//read all lines from the file
while (true)
{
//get a line from the file
string line = sr.ReadLine();
string[] values;
values = line.Split(',');
int eid = Convert.ToInt32(values[0]);
string ename = Convert.ToString(values[1]);
double sal = Convert.ToDouble(values[2]);
//set data into parameters
p1.ParameterName = "@empid";
p1.Value = eid;
p2.ParameterName = "@empname";
p2.Value = ename;
p3.ParameterName = "@salary";
p3.Value = sal;
//insert into database
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
if (sr.EndOfStream == true)
break;
//close the file
sr.Close();
Console.WriteLine("Data stored into database");
Console.ReadKey();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
Check the data in �SQL Server�:
The "SqlCommandBuilder" class in ADO.NET
System.Data.SqlClient.SqlCommandBuilder
� The �SqlCommandBuilder� is a pre-defined class in a namespace called
�System.Data.SqlClient�.
� This class�s object generates a set of INSERT, UPDATE, DELETE sql
statements automatically, based on the SELECT statement, based on which
we can perform DML operations using DataSet.
Properties of �SqlCommandBuilder� class:
Sl.
No
Property
Data Type
Description
DataAdapter
SqlDataAdapter
Represents the reference of object of
SqlDataAdapter class in which the INSERT,
UPDATE, DELETE commands have to be
generated..
Syntax: referencevariable.DataAdapter =
ReferenceVariableSqlDataAdapter ;
Constructors of �SqlCommandBuilder� class:
Sl.
No
Constructor
Description
SqlCommandBuilder()
Initializes nothing.
Syntax: new SqlCommandBuilder();
2
SqlCommandBuilder
(SqlDataAdapter adapter)
Initializes DataAdapter property.
Syntax: new
SqlCommandBuilder(SqlDataAdapter adapter);
ADO.NET � SqlCommandBuilder � DataSet �
Insertion - Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DataSetInsertionExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DataSetInsertionExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
using System.Data;
namespace DataSetInsertionExample
class Program
static void Main()
//accept values from keyboard
Console.Write("Enter EmpID: ");
int empId = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter EmpName: ");
string empName = Console.ReadLine();
Console.Write("Enter Salary: ");
decimal sal = Convert.ToDecimal(Console.ReadLine());
//create reference variables
SqlConnection cn;
SqlCommand cmd;
SqlDataAdapter adp;
SqlCommandBuilder cmb;
DataSet ds;
DataTable dt;
DataRow drow;
//create objects
cn = new SqlConnection();
cmd = new SqlCommand();
adp = new SqlDataAdapter();
cmb = new SqlCommandBuilder();
ds = new DataSet();
//call properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "select * from Employees";
cmd.Connection = cn;
adp.SelectCommand = cmd;
cmb.DataAdapter = adp;
//call methods
adp.Fill(ds);
dt = ds.Tables[0];
//create a new data row
drow = dt.NewRow();
drow["empid"] = empId;
drow["empname"] = empName;
drow["salary"] = sal;
//add row to the table
dt.Rows.Add(drow);
//save changes back to the database
adp.Update(ds);
Console.WriteLine("Inserted");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET � SqlCommandBuilder � DataSet �
Updation - Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DataSetUpdationExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DataSetUpdationExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
using System.Data;
namespace DataSetUpdationExample
class Program
static void Main()
//accept values from keyboard
Console.Write("Enter Existing EmpID: ");
int empId = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter EmpName: ");
string empName = Console.ReadLine();
Console.Write("Enter Salary: ");
decimal sal = Convert.ToDecimal(Console.ReadLine());
//create reference variables
SqlConnection cn;
SqlCommand cmd;
SqlDataAdapter adp;
SqlCommandBuilder cmb;
DataSet ds;
DataTable dt;
DataRow drow;
//create objects
cn = new SqlConnection();
cmd = new SqlCommand();
adp = new SqlDataAdapter();
cmb = new SqlCommandBuilder();
ds = new DataSet();
//call properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "select * from Employees";
cmd.Connection = cn;
adp.SelectCommand = cmd;
cmb.DataAdapter = adp;
//call methods
adp.Fill(ds);
dt = ds.Tables[0];
//get datarow based on empid
int n = Convert.ToInt32(empId);
string condition = "empid=" + n;
drow = dt.Select(condition)[0];
//update
drow["empname"] = empName;
drow["salary"] = sal;
//save changes back to the database
adp.Update(ds);
Console.WriteLine("Updated");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
ADO.NET � SqlCommandBuilder � DataSet �
Deletion - Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �DataSetDeletionExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �DataSetDeletionExample�.
� Click on OK.
Program.cs
using System;
using System.Data.SqlClient;
using System.Data;
namespace DataSetDeletionExample
class Program
static void Main()
//accept values from keyboard
Console.Write("Enter Existing EmpID: ");
int empId = Convert.ToInt32(Console.ReadLine());
//create reference variables
SqlConnection cn;
SqlCommand cmd;
SqlDataAdapter adp;
SqlCommandBuilder cmb;
DataSet ds;
DataTable dt;
DataRow drow;
//create objects
cn = new SqlConnection();
cmd = new SqlCommand();
adp = new SqlDataAdapter();
cmb = new SqlCommandBuilder();
ds = new DataSet();
//call properties
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "select * from Employees";
cmd.Connection = cn;
adp.SelectCommand = cmd;
cmb.DataAdapter = adp;
//call methods
adp.Fill(ds);
dt = ds.Tables[0];
//get datarow based on empid
int n = Convert.ToInt32(empId);
string condition = "empid=" + n;
drow = dt.Select(condition)[0];
//delete the row
drow.Delete();
//save changes back to the database
adp.Update(ds);
Console.WriteLine("Deleted");
Console.ReadKey();
}
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
N-Tier Architecture in C#.NET
N-Tier Architecture (or) 3-Tier Architecture
� The application�s code is divided as 3 major parts for ease of maintenance
and administration purpose:
1. Data Access Layer: Contains code for connecting with database.
2. Business Logic Layer: Contains code for validations and calculations.
3. Presentation Layer: Contains code for displaying the UI and event
handling.
� We have to create each �layer (part)� as a separate class library.
N-Tier Architecture - Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Solution
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Other Project Types� � �Visual Studio Solutions�.
� Select �Blank Solution�.
� Type the name as �CompanySolution�.
� Type the location as �C:\CSharp�.
� Click on OK.
Creating Data Access Layer
� Open Solution Explorer.
� Right click on the solution (CompanySolution) and click on �Add� � �New
Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#� � �Class Library�.
� Type the name as �CompanyDataAccess�.
� Click on OK.
Creating Business Logic Layer
� Open Solution Explorer.
� Right click on the solution (CompanySolution) and click on �Add� � �New
Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#� � �Class Library�.
� Type the name as �CompanyBusinessLogic�.
� Click on OK.
Creating Presentation Logic
� Open Solution Explorer.
� Right click on the solution (CompanySolution) and click on �Add� � �New
Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#� � �Console Application�.
� Type the name as �CompanyPresentationLogic�.
� Click on OK.
Adding references:
� Open Solution Explorer.
� Right click on �CompanyBusinessLogic� project and click on �Add� �
�Reference� � �Projects� � Check the checkbox �CompanyDataAccess� � OK.
� Right click on �CompanyPresentationLogic� project and click on �Add� �
�Reference� � �Projects� � Check the checkbox �CompanyBusinessLogic� �
OK.
Setting the Startup Project
� Open Solution Explorer.
� Right click on �CompanyPresentationLogic� project and click on �Set as
Startup Project�.
CompanyDataAccess\Class1.cs
//Data Access Logic
using System;
using System.Data.SqlClient;
namespace CompanyDataAccess
public class EmployeesDataAccess
public int InsertEmployee(int EmpID, string EmpName, decimal Salary)
SqlConnection cn;
SqlCommand cmd;
SqlParameter p1, p2, p3;
cn = new SqlConnection();
cmd = new SqlCommand();
p1 = new SqlParameter();
p2 = new SqlParameter();
p3 = new SqlParameter();
cn.ConnectionString = "data source=localhost; integrated
security=yes; initial catalog=company";
cmd.CommandText = "insert into Employees values(@a, @b, @c)";
cmd.Connection = cn;
p1.ParameterName = "@a";
p2.ParameterName = "@b";
p3.ParameterName = "@c";
p1.Value = EmpID;
p2.Value = EmpName;
p3.Value = Salary;
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3);
cn.Open();
int n = cmd.ExecuteNonQuery();
cn.Close();
return n;
CompanyBusinessLogic\Class1.cs
//Business Logic
using System;
using CompanyDataAccess;
namespace CompanyBusinessLogic
public class EmployeesBusinessLogic
private int _empid;
private string _empname;
private decimal _salary;
public int EmpID
set
if (value >= 0)
{
_empid = value;
get
{
return _empid;
public string EmpName
set
if (value.Length <= 40)
_empname = value;
get
return _empname;
public decimal Salary
set
if (value >= 1000 && value <= 5000)
_salary = value;
get
{
return _salary;
public string Insert()
{
EmployeesDataAccess da = new EmployeesDataAccess();
int result = da.InsertEmployee(this.EmpID, this.EmpName,
this.Salary);
if (result == 1)
return "Inserted";
else
return "Error in insertion";
CompanyPresentationLogic\Program.cs
//Presentation Logic
using System;
using CompanyBusinessLogic;
namespace CompanyPresentationLogic
class Program
static void Main()
//accept values from keyboard
Console.Write("Enter EmpID: ");
int empId = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter EmpName: ");
string empName = Console.ReadLine();
Console.Write("Enter Salary: ");
decimal sal = Convert.ToDecimal(Console.ReadLine());
EmployeesBusinessLogic b = new EmployeesBusinessLogic();
b.EmpID = empId;
b.EmpName = empName;
b.Salary = sal;
string msg = b.Insert();
Console.WriteLine(msg);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
LINQ to SQL
Language Integrated Query (LINQ) to SQL
� �LINQ to SQL� is a framework, which is used to connect and interact with
SQL Server database.
� �LINQ to SQL� was introduced in .NET 3.5.
� �LINQ to SQL� internally uses �ADO.NET� and �SQL�. That means �LINQ to
SQL queries� will be internally converted into �SQL queries� and executed
based on ADO.NET classes.
� �LINQ to SQL� works based on mapping classes. A mapping class represents
the structure of the table. A table become as �mapping class� and all the
columns become as �Properties� in the �mapping class�.
� The �DataContext� class that inherits from �System.Data.Linq.DataContext�
class, represents a group of collections of mapping classes.
Syntax of �LINQ to SQL�:
(from rangevariable in collectionname where condition select
rangevariable).ToList()
-- or �
Collectionname.Where(variable => condition).ToList()
The ToList() method opens the connection, convert the LINQ query into SQL query,
execute the query, convert the resultset into collection and close the database
connection.
Advantages of LINQ to SQL
� Easier than �ADO.NET�.
� Converts data into collection; so we can write the loops easily.
LINQ to SQL - Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �LinqToSqlExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �LinqToSqlExample�.
� Click on OK.
Creating �DBML� file:
� Open Solution Explorer.
� Right click on the project (LinqToSqlExample) and click on �Add� � �New
Item� � �Data� � �LINQ to SQL Classes�.
� Type the name as �DataClasses1.dbml� (Database Markup Language).
� Click on �Add�.
� Go to �View� menu � �Server Explorer�.
� Right click on �Data Connections� and click on �Add Connection�.
� Type the server name as �localhost�.
� Select the authentication as �Windows Authentication�.
� Select the database name as �company�.
� Click on OK.
� Expand �company.dbo� � �Tables� � �Employees�.
� Drag and drop �Employees� table from Server Explorer into �Object
Relational Designer� of �DataClasses1.dbml� file.
� It generate two classes called �DataClasses1DataContext� and �Employee�.
� Go to �Build� menu � �Build Solution�.
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
namespace LinqToSqlExample
class Program
static void Main()
//create reference variables
DataClasses1DataContext db;
//create objects
db = new DataClasses1DataContext();
//LINQ query
List<Employee> emps = db.Employees.ToList();
//read data row-by-row
for (int i = 0; i < emps.Count; i++)
Employee emp = emps[i];
Console.WriteLine(emp.EmpID + ", " + emp.EmpName + ", " +
emp.Salary);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
C#.NET � Console � Entity
Framework
ADO.NET Entity Framework
ADO.NET Entity Framework (EF)
� �ADO.NET Entity Framework (EF)� is a framework, which is a part of �.NET�,
which is advanced than �ADO.NET�. It was introduced in .NET 4.0.
� �ADO.NET EF� works based on �Ado.NET�.
� �ADO.NET EF� is a database technology, which is used to connect and
interact with databases.
Advantages of Entity Framework
� �Entity Framework� is easier than �ADO.NET�.
� �Entity Framework� automatically converts data into collection; so that it
will be easy to read and manipulate the data.
� �Entity Framework� is better compatible with other frameworks such as
�WPF� and �ASP.NET MVC� etc.
Features of Entity Framework
1. Tables become �model classes�; columns become �properties�.
-
�EmpID� column . �EmpID� property
-
�EmpName� column . �EmpName� property
-
�Salary� column . �Salary� property.
o EmpID: 1, EmpName: Scott, Salary: 4000 . Object
o A group of objects of model class, is treated as a �collection�.
o We will read data from collection; not from the dataset / data reader.
o ADO.NET EF internally and automatically copy the data from
�resultset� to �collection�.
�Employees� table . �Employee� class
2. Every record (row) become �object�.
3. Every �group of objects� is a collection:
4. We can write presentation logic / business logic based on the collections:
Steps for development of Entity Framework
1. Install �EntityFramework� package:
o We have to install �EntityFramework� NuGet package in order to use
Entity Framework.
o A NuGet package is a collection of one or more assemblies. When we
install a NuGet package, all of its assemblies will be added as
reference to the project.
o The �EntityFramework� NuGet package contains an assembly called
�EntityFramework.dll�, which contains all the pre-defined classes of
Entity Framework.
o To install the �EntityFramework� package, use the following
command in �Package Manager Console�.
Install-package EntityFramework
2. Create a model class:
class modelclassname
public datatype property1 { get; set; }
public datatype property2 { get; set; }
}
3. Create a child class for �DbContext� class:
DbContext = Group of DbSet�s
DbSet = a collection of one table
class childclassname : System.Data.Entity.DbContext
public DbSet<modelclass> collectionname { get; set; }
public DbSet<modelclass> collectionname { get; set; }
4. Create an object for the child class:
Childclassname referencevariable ;
referencevariable = new Childclassname();
5. Access the collection:
Referencevariable.collectionname
Entity Framework - Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �EntityFrameworkExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �EntityFrameworkExample�.
� Click on OK.
Installing �EntityFramework� NuGet Package
� Go to �Tools� menu � �NuGet Package Manager� - �Package Manager
Console�.
� Type the command and press Enter.
Install-package EntityFramework
Adding �ConnectionString� in �App.Config�:
� Go to �App.Config� (If exists already).
� Scroll down to end of �App.Config� file and add �ConnectionStrings� as
follows:
<connectionStrings>
<add name="CompanyDbContext"
connectionString="data source=localhost; integrated
security=yes; initial catalog=company"
providerName="System.Data.SqlClient" />
</connectionStrings>
Program.cs
using System;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
using System.Collections.Generic;
using System.Linq;
namespace EntityFrameworkExample
public class Employee
[Key]
public int EmpID { get; set; }
public string EmpName { get; set; }
public decimal Salary { get; set; }
public class CompanyDbContext : DbContext
public DbSet<Employee> Employees { get; set; }
class Program
static void Main()
//create reference variable
CompanyDbContext db;
//create object
db = new CompanyDbContext();
//LINQ query
//List<Employee> emps = db.Employees.ToList();
//List<Employee> emps = db.Employees.Where(temp => temp.Salary
>= 2000).ToList();
List<Employee> emps = db.Employees.OrderBy(temp =>
temp.Salary).ToList();
//read data row-by-row
for (int i = 0; i < emps.Count; i++)
Employee emp = emps[i];
Console.WriteLine(emp.EmpID + ", " + emp.EmpName + ", " +
emp.Salary);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
Entity Framework � FirstOrDefault -
Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �FirstOrDefaultExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �FirstOrDefaultExample�.
� Click on OK.
Installing �EntityFramework� NuGet Package
� Go to �Tools� menu � �NuGet Package Manager� - �Package Manager
Console�.
� Type the command and press Enter.
Install-package EntityFramework
Adding �ConnectionString� in �App.Config�:
� Go to �App.Config� (If exists already).
� Scroll down to end of �App.Config� file and add �ConnectionStrings� as
follows:
<connectionStrings>
<add name="CompanyDbContext" connectionString="data
source=localhost; integrated security=yes; initial
catalog=company" providerName="System.Data.SqlClient" />
</connectionStrings>
Program.cs
using System;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
using System.Collections.Generic;
using System.Linq;
namespace FirstOrDefaultExample
public class Employee
[Key]
public int EmpID { get; set; }
public string EmpName { get; set; }
public decimal Salary { get; set; }
public class CompanyDbContext : DbContext
public DbSet<Employee> Employees { get; set; }
class Program
static void Main()
//create reference variables
CompanyDbContext db;
//create objects
db = new CompanyDbContext();
//LINQ query: Get single record
Employee emp = db.Employees.Where(temp => temp.EmpID ==
1).FirstOrDefault();
//read data row-by-row
Console.WriteLine("Emp ID: " + emp.EmpID);
Console.WriteLine("Emp Name: " + emp.EmpName);
Console.WriteLine("Salary: " + emp.Salary);
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Note: If any database connection problem, it shows exception (run
time error).
Entity Framework � Insertion - Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �EfInsertionExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �EfInsertionExample�.
� Click on OK.
Installing �EntityFramework� NuGet Package
� Go to �Tools� menu � �NuGet Package Manager� - �Package Manager
Console�.
� Type the command and press Enter.
Install-package EntityFramework
Adding �ConnectionString� in �App.Config�:
� Go to �App.Config� (If exists already).
� Scroll down to end of �App.Config� file and add �ConnectionStrings� as
follows:
<connectionStrings>
<add name="CompanyDbContext" connectionString="data
source=localhost; integrated security=yes; initial
catalog=company" providerName="System.Data.SqlClient" />
</connectionStrings>
Program.cs
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Collections.Generic;
using System.Linq;
namespace EfInsertionExample
public class Employee
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int EmpID { get; set; }
public string EmpName { get; set; }
public decimal Salary { get; set; }
public class CompanyDbContext : DbContext
public DbSet<Employee> Employees { get; set; }
class Program
static void Main()
//accept values from keyboard
Console.Write("Enter EmpID: ");
int empId = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter EmpName: ");
string empName = Console.ReadLine();
Console.Write("Enter Salary: ");
decimal sal = Convert.ToDecimal(Console.ReadLine());
//insertion
CompanyDbContext db = new CompanyDbContext();
Employee emp = new Employee();
emp.EmpID = empId;
emp.EmpName = empName;
emp.Salary = sal;
db.Employees.Add(emp);
db.SaveChanges();
Console.WriteLine("Inserted");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Entity Framework � Updation - Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �EfUpdationExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �EfUpdationExample�.
� Click on OK.
Installing �EntityFramework� NuGet Package
� Go to �Tools� menu � �NuGet Package Manager� - �Package Manager
Console�.
� Type the command and press Enter.
Install-package EntityFramework
Adding �ConnectionString� in �App.Config�:
� Go to �App.Config� (If exists already).
� Scroll down to end of �App.Config� file and add �ConnectionStrings� as
follows:
<connectionStrings>
<add name="CompanyDbContext" connectionString="data
source=localhost; integrated security=yes; initial
catalog=company" providerName="System.Data.SqlClient" />
</connectionStrings>
Program.cs
using System;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
using System.Collections.Generic;
using System.Linq;
namespace EfUpdationExample
public class Employee
[Key]
public int EmpID { get; set; }
public string EmpName { get; set; }
public decimal Salary { get; set; }
public class CompanyDbContext : DbContext
public DbSet<Employee> Employees { get; set; }
class Program
static void Main()
//accept values from keyboard
Console.Write("Enter Existing EmpID: ");
int empId = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter EmpName: ");
string empName = Console.ReadLine();
Console.Write("Enter Salary: ");
decimal sal = Convert.ToDecimal(Console.ReadLine());
//updation
CompanyDbContext db = new CompanyDbContext();
Employee emp = db.Employees.Where(temp => temp.EmpID ==
empId).FirstOrDefault();
emp.EmpName = empName;
emp.Salary = sal;
db.SaveChanges();
Console.WriteLine("Updated");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Entity Framework � Deletion - Example
Creating Database
� Note: Ignore this step, if you have created �company� database already.
� Open SQL Server Management Studio. Click on �Connect�.
� Click on �New Query�.
� Type the following code:
create database company
go
use company
go
create table Employees(
EmpID int primary key,
EmpName nvarchar(max),
Salary decimal)
go
insert into Employees values(1, 'Scott', 4000)
insert into Employees values(2, 'Allen', 5000)
insert into Employees values(3, 'Jones', 6000)
go
� Click on �Execute� button. It shows �Query executed successfully� in the
status bar.
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Console Application�.
� Type the project name as �EfDeletionExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �EfDeletionExample�.
� Click on OK.
Installing �EntityFramework� NuGet Package
� Go to �Tools� menu � �NuGet Package Manager� - �Package Manager
Console�.
� Type the command and press Enter.
Install-package EntityFramework
Adding �ConnectionString� in �App.Config�:
� Go to �App.Config� (If exists already).
� Scroll down to end of �App.Config� file and add �ConnectionStrings� as
follows:
<connectionStrings>
<add name="CompanyDbContext" connectionString="data
source=localhost; integrated security=yes; initial
catalog=company" providerName="System.Data.SqlClient" />
</connectionStrings>
Program.cs
using System;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
using System.Collections.Generic;
using System.Linq;
namespace EfDeletionExample
public class Employee
[Key]
public int EmpID { get; set; }
public string EmpName { get; set; }
public decimal Salary { get; set; }
public class CompanyDbContext : DbContext
public DbSet<Employee> Employees { get; set; }
class Program
static void Main()
//accept values from keyboard
Console.Write("Enter Existing EmpID: ");
int empId = Convert.ToInt32(Console.ReadLine());
//deletion
CompanyDbContext db = new CompanyDbContext();
Employee emp = db.Employees.Where(temp => temp.EmpID ==
empId).FirstOrDefault();
db.Employees.Remove(emp);
db.SaveChanges();
Console.WriteLine("Deleted");
Console.ReadKey();
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
C#.NET � Windows Forms
Applications
Introduction to Windows Forms Applications
in C#.NET
Overview of Windows Forms Applications
� �Windows forms applications� are �GUI (Graphical User Interface)� based
applications that can be developed in .NET.
� Windows forms applications are also called as �WinForms�.
� Windows forms applications are created using c#.net.
� Windows forms applications are user-friendly and easy to use.
� Windows forms applications are created based on Object-oriented
programming concepts.
� Windows forms application is a collection of windows forms.
� A windows form (win form) is a GUI container and a window that contains UI
(user interface), using which the user can interact with the system. Ex: Login
form
� Windows forms applications can interact with databases using ADO.NET.
� Windows forms applications support �local GUI� that runs on windows
operating system locally.
� Windows forms applications are compiled into �.exe� file.
o The exe file is also called as �assembly�.
o The exe file contains compiled source code (in MSIL (Microsoft
Intermediate Language)) of windows forms application.
Ex: WindowsFormsApplication1.exe
Assemblies (dll files) to develop windows forms applications:
� .NET provides the following assemblies (dll files) to develop windows forms
applications:
1. System.Windows.Forms.dll
2. System.Drawing.dll
System.Windows.Forms.dll
. �System.Windows.Forms.dll� assembly
� �System.Windows.Forms� namespace
o �Form� class
o �Label� class
o �Button� class
o �TextBox� class
etc.
The �System.Windows.Forms.Form� class
System.Windows.Forms.Form
� �Form� is a class, which is a member of �System.Windows.Forms� is a
namespace.
� The object of �Form� class represents a form.
� Every form contains basic look and feel such as title bar, minimize box,
maximize box, close box etc.
Programming Model of Windows Form in
C#.NET
Programming Model of a Windows Form
� To create a form, you have to create a child class for
�System.Windows.Forms.Form� class & you have to create an object for the
child class.
� The child class can be �public� class optionally.
� The child class must inherit from �System.Windows.Forms.Form� class. The
�System.Windows.Forms.Form� class provides the layout (appearance),
properties, events and methods for the child class.
Syntax:
public partial class Classname : System.Windows.Forms.Form
public Classname ()
InitializeComponent();
� The child class must be �partial class�.
o The visual studio generated designer code (Form1.Designer.cs) and
user-defined code (Form1.cs) should be combined as a single class at
compile-time. To make this possible, the form class must be �partial
class�.
� �public Classname()�
o It is the constructor that executes as soon as an object for the form
class is created at run time.
� InitializeComponent()
o The InitializeCompoent() method initializes the basic look and feel of
the form. The definition of InitializeCompoent() method is generated
in �Form1.Designer.cs� file.
� Program.cs
o In Program.cs, at main method, the following statement will create an
object for the form class.
Application.Run(new ChildClassname ());
Windows Forms Application � First Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�. Select �Visual C#�.
� Select �Windows Forms Application�.
� Type the project name as �WindowsFormsApplication1�.
� Type the location as �C:\CSharp�.
� Type the solution name as �WindowsFormsApplication1�.
� Click on OK.
� Right click on the form and click on �View Code�.
Form1.cs
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
public partial class Form1 : Form
public Form1()
InitializeComponent();
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Form Constructor - Example
Creating Project
� Open Visual Studio 2015.
� Go to �File� � �New� � �Project�.
� Select �.NET Framework 4.6�.
� Select �Visual C#�.
� Select �Windows Forms Application�.
� Type the project name as �FormConstructorExample�.
� Type the location as �C:\CSharp�.
� Type the solution name as �FormConstructorExample�.
� Click on OK.
� Right click on the form and click on �View Code�.
Form1.cs
using System;
using System.Windows.Forms;
namespace FormConstructorExample
public partial class Form1 : Form
public Form1()
InitializeComponent();
MessageBox.Show("Message from Form1 Constructor");
}
Running the Project
� Go to �Debug� menu and click on �Start Debugging�.
Output
Click on OK
Properties of
�System.Windows.Forms.Form� class
Properties of �System.Windows.Forms.Form� class
� The properties of �System.Windows.Forms.Form� class provides a set of
properties to customize the look and feel of the form.
Sl.
No
Property
Description
Text
Represents title of the form that appears in the titlebar
of the form.
Syntax: this.Text = "title here";
ShowIcon
Shows / hides the form icon.
True: Shows the form icon.
False: Hides the form icon.