UNIT I
Short Questions (5 Marks)
Q1. Define Object-Oriented Programming (OOP). Explain its four pillars.
Q2. What is Type Safety in C#?
Q3. Differentiate between Stack and Heap Memory.
Q4. Explain the role of the Garbage Collector (GC).
Q5. What is CLR? Mention its functions.
Q6. What is the Framework Class Library (FCL)?
Q7. What is .NET Standard 2.0?
Q8. List the applications of the .NET Framework.
Long Questions (10 Marks)
Q1. Explain the architecture of the .NET Framework with a neat diagram.
Q2. Describe the execution process of a C# program from source code to machine code.
Q3. Compare .NET Framework, .NET Core, Mono, Xamarin, and .NET MAUI.
Q4. Explain CLR and its services in detail.
Q5. Discuss the major components and applied technologies of the .NET Framework.
⭐ One-Night Revision Box (Unit I)
- OOP = Encapsulation + Inheritance + Polymorphism + Abstraction
- CLR = Runtime execution engine
- FCL = Reusable class library
- IL → JIT → Machine Code
- GC works on Heap Memory
- Stack stores variables; Heap stores objects
- .NET Standard = API specification for compatibility
- .NET Core = Cross-platform
- Xamarin = Mobile
- .NET MAUI = Mobile + Desktop
- ASP.NET = Web development
- ADO.NET = Database connectivity
UNIT II
Short Questions (5 Marks)
Q1. Write the structure of a C# program.
Q2. Differentiate between Console and GUI Applications.
Q3. Explain Identifiers and Keywords with examples.
Q4. Explain Comments in C#.
Q5. Explain Data Types with classification.
Q6. Differentiate between Value Types and Reference Types.
Q7. Explain Variables and Constants.
Q8. Explain Type Conversion (Implicit and Explicit).
Q9. Explain Operators in C#.
Q10. Differentiate between = and ==.
Q11. Explain Strings and Characters.
Q12. Explain Arrays with Examples.
Q13. Explain Parameter Passing Methods.
Q14. Explain Command-Line Arguments.
Q15. Explain Nullable Types.
Q16. Explain Boxing and Unboxing.
Long Questions (10 Marks)
Q1. Explain Selection Statements in C# with Syntax and Examples.
Q2. Explain Iteration Statements in C# with Syntax, Flowcharts, and Programs.
Q3. Compare for, while, do-while, and foreach.
Q4. Explain Jump Statements with Suitable Programs.
Q5. Explain Namespaces in C# with Syntax, Diagrams, and Suitable Programs.
Important Definitions
C# Program
A C# program is a collection of classes and methods that execute from the Main() method.
Identifier
An identifier is a user-defined name given to variables, methods, classes, namespaces, or other program elements.
Keyword
A keyword is a reserved word in C# with a predefined meaning and cannot normally be used as an identifier.
Variable
A variable is a named memory location used to store data whose value can change during program execution.
Constant
A constant is a fixed value declared using the const keyword that cannot be modified after initialization.
Data Type
A data type specifies the kind of value a variable can store and determines the operations that can be performed on it.
Type Conversion
Type conversion is the process of converting a value from one data type to another.
- Implicit Conversion – Automatic conversion.
- Explicit Conversion – Manual conversion using type casting.
String
A string is a sequence of Unicode characters enclosed within double quotation marks (“).
Character
A character (char) stores a single Unicode character enclosed within single quotation marks (‘).
Array
An array is a collection of elements of the same data type stored in contiguous memory locations and accessed using an index.
Parameter
A parameter is a variable used to receive values passed to a method.
Selection Statement
A selection statement controls program execution by choosing one block of code from multiple alternatives based on a condition.
Iteration Statement
An iteration statement repeatedly executes a block of code while a specified condition is satisfied.
Jump Statement
A jump statement transfers program control from one location to another.
Namespace
A namespace is a logical container used to organize related classes, interfaces, structures, delegates, and other types while preventing naming conflicts.
Important Syntax
Variable Declaration
int age = 20;
double salary = 50000;
Constant
const double PI = 3.14159;
Implicit Conversion
int a = 100;
double b = a;
Explicit Conversion
double x = 12.8;
int y = (int)x;
If Statement
if(condition)
{
// statements
}
If-Else Statement
if(condition)
{
// True Block
}
else
{
// False Block
}
Switch Statement
switch(expression)
{
case 1:
break;
default:
break;
}
For Loop
for(int i = 1; i <= 5; i++)
{
// statements
}
While Loop
while(condition)
{
// statements
}
Do-While Loop
do
{
// statements
}
while(condition);
Foreach Loop
foreach(int item in array)
{
Console.WriteLine(item);
}
Break Statement
break;
Continue Statement
continue;
Return Statement
return value;
Namespace
namespace College
{
}
Using Directive
using System;
Frequently Confused Concepts
| Concept 1 | Concept 2 | Difference |
| Identifier | Keyword | Identifier is user-defined; keyword is reserved. |
| Variable | Constant | Variable changes; constant remains fixed. |
| = | == | Assignment vs comparison. |
| char | string | Single character vs sequence of characters. |
| Value Type | Reference Type | Stores value vs stores reference. |
| Implicit Conversion | Explicit Conversion | Automatic vs manual conversion. |
| if-else | switch | Condition-based vs value-based selection. |
| for | while | Known iterations vs unknown iterations. |
| while | do-while | Condition checked before vs after execution. |
| for | foreach | Counter-controlled vs collection traversal. |
| break | continue | Exit loop vs skip current iteration. |
| Namespace | Class | Namespace organizes types; class defines objects. |
Memory Tricks
Loop Selection
- for → Fixed number of repetitions.
- while → Unknown number of repetitions.
- do-while → Execute at least once.
- foreach → Arrays and collections.
Type Conversion
- Small → Large = Implicit
- Large → Small = Explicit
Selection Statements
- if → One decision
- if-else → Two choices
- else-if → Multiple conditions
- switch → Multiple fixed values
Jump Statements
- break → Stop
- continue → Skip
- goto → Jump
- return → Exit method
Namespace
Namespace = Folder
Class = File
using = Shortcut
Frequently Asked Practical Programs
The following programs are frequently asked in TU practical examinations:
- Program to find the largest of three numbers using if-else.
- Program to calculate grade using switch.
- Program to print multiplication tables using a for loop.
- Program to display even and odd numbers.
- Program to calculate factorial using a while loop.
- Program to generate the Fibonacci series.
- Program to reverse a number.
- Program to check whether a number is prime.
- Program to display elements of an array using foreach.
- Program demonstrating break and continue.
- Program illustrating command-line arguments.
- Program demonstrating namespaces.
Frequently Asked Viva Questions
Q1. What is the entry point of a C# program?
Answer: The Main() method.
Q2. What is the difference between = and ==?
Answer: = assigns a value, whereas == compares two values.
Q3. Why are comments used?
Answer: To improve readability and documentation. They are ignored by the compiler.
Q4. Which loop executes at least once?
Answer: do-while loop.
Q5. Which loop is best for arrays?
Answer: foreach loop.
Q6. What is a namespace?
Answer: A logical container that organizes related classes and avoids naming conflicts.
Q7. What is implicit type conversion?
Answer: Automatic conversion from a smaller compatible data type to a larger one without explicit casting.
Q8. What is the difference between value types and reference types?
Answer: Value types store actual data, whereas reference types store the memory address of objects.
Q9. What is the purpose of the using directive?
Answer: It imports a namespace so its members can be used without writing the fully qualified name.
Q10. Which statement exits a loop immediately?
Answer: break.
Complete Unit II Cheat Sheet
| Topic | Remember |
| Entry Point | Main() |
| Comments | //, /* */, /// |
| Constant | const |
| Namespace Import | using |
| Equality | == |
| Assignment | = |
| String | Double quotes (” “) |
| Char | Single quotes (‘ ‘) |
| Array Index | Starts from 0 |
| Fixed Loop | for |
| Unknown Loop | while |
| Execute Once | do-while |
| Array Traversal | foreach |
| Exit Loop | break |
| Skip Iteration | continue |
| Exit Method | return |
Common Programming Errors
❌ Using = instead of == inside conditions.
❌ Forgetting semicolons (;).
❌ Accessing an array index outside its valid range.
❌ Infinite loops due to incorrect loop conditions.
❌ Forgetting to increment or decrement loop variables.
❌ Declaring variables without initialization when required.
❌ Missing break statements in switch cases.
❌ Omitting the using directive for required namespaces.
⭐ One-Night Revision Box (Unit II)
- Main() is the entry point of every C# program.
- Identifiers are user-defined names; keywords are reserved words.
- Value types store actual values; reference types store object references.
- = assigns values; == compares values.
- char stores one character; string stores multiple characters.
- Arrays store multiple values of the same type and use zero-based indexing.
- Use if-else for conditional decisions and switch for multiple fixed choices.
- for is best when the number of iterations is known.
- while is used when the number of iterations is unknown.
- do-while always executes the loop body at least once.
- foreach is ideal for traversing arrays and collections.
- break exits a loop; continue skips the current iteration; return exits a method.
- Namespaces organize related classes and prevent naming conflicts.
- using imports a namespace.
- Implicit conversion is automatic; explicit conversion requires casting.
UNIT III
Short Questions (5 Marks)
Q1. What is a Class? Explain with a suitable example.
Q2. What is a Constructor? Explain its characteristics.
Q3. Differentiate between Constructors and Methods.
Q4. Explain the this Keyword in C#.
Q5. What are Properties in C#?
Q6. What is an Indexer? Explain with a suitable example.
Q7. Differentiate between Fields and Properties.
Q8. What are Static Constructors and Static Classes?
Q9. What is a Finalizer? Explain with a suitable example.
Q10. What is Dynamic Binding?
Q11. Explain Operator Overloading with a complete C# program.
Q12. Explain Inheritance with a suitable C# program.
Q13. Explain Abstract Classes and Abstract Methods.
Q14. Explain the base Keyword with an example.
Q15. Explain Method Overloading. Differentiate it from Method Overriding.
Long Questions (10 Marks)
Q1. Explain Inheritance with a Suitable C# Program.
Q2. Explain Abstract Classes and Abstract Methods with Suitable Examples.
Q3. Differentiate between Interface and Abstract Class.
Q4. Explain Operator Overloading with a Complete C# Program.
Q5. Explain Method Overloading and Compare it with Method Overriding.
Q6. Explain Access Modifiers with Suitable Examples.
Q7. Explain Structures (Structs) and Compare them with Classes.
Q8. Explain Properties and Indexers with Suitable Examples.
Important Syntax
class Child : Parent
abstract class Shape
interface IPrint
struct Student
enum Day
{
Sunday,
Monday
}
class Box<T>
{
}
Frequently Asked Comparisons
- Class vs Structure
- Interface vs Abstract Class
- Property vs Field
- Constructor vs Finalizer
- Method Overloading vs Method Overriding
- Value Type vs Reference Type
Programming Questions to Practice
- Inheritance
- Operator Overloading
- Abstract Class
- Interface
- Generics
- Properties
- Constructors
- Method Overloading
⭐ One-Night Revision Box ( Unit III )
- Class = Blueprint for creating objects.
- Object = Instance of a class.
- Constructor = Automatically initializes objects.
- this Keyword = Refers to the current object.
- Property = Provides controlled access using get and set.
- Indexer = Allows objects to be accessed like arrays using this.
- Field = Stores data directly.
- Static Constructor = Executes only once to initialize static members.
- Static Class = Contains only static members and cannot be instantiated.
- Finalizer = Executes before object destruction by the Garbage Collector.
- Dynamic Binding = Method selection at runtime.
- Operator Overloading = Redefines operators for user-defined objects.
- Inheritance = Code reuse through parent-child relationship.
- Abstract Class = Cannot be instantiated; may contain abstract and normal methods.
- Abstract Method = Must be overridden by derived classes.
- base Keyword = Refers to the immediate parent class.
- Method Overloading = Same method name, different parameters.
- Method Overriding = Redefines inherited methods using virtual and override.
- Interface → Defines a contract for implementing classes.
- Struct → User-defined value type.
- Enum → Collection of named constants.
- Generic → Enables type-safe reusable code.
UNIT IV
Short Questions (5 Marks)
Q1. Explain Delegates in C#.
Q2. Differentiate between Delegates and Interfaces.
Q3. Explain Multicast Delegates.
Q4. Explain Events in C#.
Q5. Differentiate between Delegates and Events.
Q6. Explain Lambda Expressions with Examples.
Q7. Explain Exception Handling in C#.
Q8. Differentiate between throw, try-catch, finally, and throw.
Q9. Explain Language Integrated Query (LINQ).
Q10. Explain LINQ Query Syntax and Method Syntax.
Q11. Explain Advantages of LINQ.
Q12. Explain ADO.NET Architecture.
Q13. Explain Connection, Command, DataReader, DataAdapter, and DataSet.
Q14. Explain Connected and Disconnected Architecture in ADO.NET.
Q15. Explain CRUD Operations in ADO.NET.
Q16. Explain ASP.NET Page Life Cycle.
Long Questions (10 Marks)
Q1. Explain Delegates and Multicast Delegates with Complete C# Programs.
Q2. Explain Events in C# with a Suitable Example.
Q3. Explain Lambda Expressions with Complete C# Programs.
Q4. Explain Exception Handling in C# with Suitable Example.
Q5. Explain LINQ Architecture with Query Syntax and Method Syntax.
Important Definitions
Delegate
A delegate is a type-safe reference type in C# that stores the reference of one or more methods and allows methods to be passed as parameters.
Important points:
- Similar to function pointers.
- Provides type safety.
- Used in callbacks and events.
- Can call methods dynamically.
Multicast Delegate
A multicast delegate is a delegate that can store references to multiple methods and execute them sequentially.
Important points:
- Uses += to add methods.
- Uses -= to remove methods.
- Commonly used in event handling.
Event
An event is a notification mechanism in C# that allows an object to inform other objects when a particular action occurs.
Important points:
- Based on delegates.
- Used in event-driven programming.
- Provides controlled communication between objects.
Lambda Expression
A lambda expression is an anonymous function that provides a shorter way to write methods using the lambda operator (=>).
Important points:
- Reduces code length.
- Used with delegates.
- Widely used with LINQ.
Exception Handling
Exception handling is a mechanism used to detect and handle runtime errors to prevent abnormal program termination.
Important points:
- Improves reliability.
- Separates error handling from normal logic.
- Uses try, catch, finally, and throw.
LINQ
LINQ (Language Integrated Query) is a C# feature that allows querying different data sources using a common query syntax.
Data sources:
- Arrays
- Collections
- Objects
- Databases
- XML
ADO.NET
ADO.NET is a Microsoft technology used for connecting .NET applications with databases and performing data operations.
Main components:
- Connection
- Command
- DataReader
- DataAdapter
- DataSet
ASP.NET
ASP.NET is a Microsoft web development framework used to create dynamic web applications and web services.
Features:
- Server-side programming.
- Database integration.
- Security support.
- Web controls.
Important Syntax Revision
Delegate Declaration
delegate returnType DelegateName(parameters);
Example:
delegate void Display();
Delegate Assignment
DelegateName obj = MethodName;
Multicast Delegate
Adding methods:
delegateObject += MethodName;
Removing methods:
delegateObject -= MethodName;
Event Declaration
public event DelegateName EventName;
Lambda Expression
(parameters) => expression;
Example:
x => x * x;
Exception Handling
try
{
}
catch(Exception e)
{
}
finally
{
}
Throw Statement
throw new Exception(“Error Message”);
LINQ Query Syntax
var result =
from item in collection
where condition
select item;
LINQ Method Syntax
collection.Where(x => condition);
ADO.NET Connection
SqlConnection con =
new SqlConnection(connectionString);
SQL Command
SqlCommand cmd =
new SqlCommand(query, con);
Frequently Confused Concepts
| Concept | Difference |
| Delegate vs Event | Delegate stores method reference; event provides notification mechanism |
| Delegate vs Interface | Delegate represents methods; interface defines class behavior |
| Normal Delegate vs Multicast Delegate | Normal delegate calls one method; multicast calls multiple methods |
| Method vs Lambda Expression | Method has a name; lambda is anonymous |
| Exception vs Error | Exception can be handled; errors are generally serious system failures |
| throw vs throws | C# uses throw; throws belongs to Java |
| try vs finally | try contains risky code; finally executes cleanup code |
| LINQ vs SQL | LINQ is integrated into C#; SQL is database query language |
| DataReader vs DataSet | DataReader is connected and fast; DataSet is disconnected and flexible |
| Connection vs Command | Connection opens database link; Command executes SQL operations |
Memory Tricks
Delegate/Event Relationship
Remember:
D → E
Delegate → Event
Events are built on delegates.
Exception Handling Order
Remember:
T-C-F-T
Try
Catch
Finally
Throw
ADO.NET Components
Remember:
C C D D D
Connection
Command
DataReader
DataAdapter
DataSet
LINQ Data Sources
Remember:
O D X
Objects
Database
XML
Frequently Asked Practical Programs
The following programs are commonly asked in TU practical examinations.
1. Program to Demonstrate Delegate
using System;
class Program
{
delegate void Message();
static void Display()
{
Console.WriteLine(“Hello Delegate”);
}
static void Main()
{
Message msg = Display;
msg();
}
}
Output:
Hello Delegate
2. Program to Demonstrate Multicast Delegate
using System;
class Program
{
delegate void Show();
static void First()
{
Console.WriteLine(“First”);
}
static void Second()
{
Console.WriteLine(“Second”);
}
static void Main()
{
Show s = First;
s += Second;
s();
}
}
Output:
First
Second
3. Program Using Lambda Expression
using System;
class Program
{
delegate int Add(int a,int b);
static void Main()
{
Add sum = (x,y)=>x+y;
Console.WriteLine(sum(5,10));
}
}
Output:
15
4. Program for Exception Handling
using System;
class Program
{
static void Main()
{
try
{
int a = 10;
int b = 0;
Console.WriteLine(a/b);
}
catch(Exception e)
{
Console.WriteLine(“Error Occurred”);
}
}
}
Output:
Error Occurred
5. Program Using LINQ
using System;
using System.Linq;
class Program
{
static void Main()
{
int[] numbers = {1,2,3,4,5};
var result =
numbers.Where(n=>n>3);
foreach(int n in result)
{
Console.WriteLine(n);
}
}
}
Output:
4
5
6. Database Connectivity Steps Using ADO.NET
Create Connection
|
▼
Open Connection
|
▼
Create Command
|
▼
Execute Query
|
▼
Retrieve Data
|
▼
Close Connection
Frequently Asked Viva Questions with Answers
Q1. What is a delegate?
Answer: A delegate is a type-safe reference to a method.
Q2. Why are delegates used?
Answer: Delegates are used for callbacks, events, and dynamic method invocation.
Q3. What is a multicast delegate?
Answer: A delegate that can execute multiple methods sequentially.
Q4. What is the purpose of an event?
Answer: Events are used to notify objects when an action occurs.
Q5. What is the lambda operator?
Answer: The => operator is called the lambda operator.
Q6. What are the keywords used in exception handling?
Answer: try, catch, finally, and throw.
Q7. What is LINQ?
Answer: LINQ is a feature of C# used to query different data sources.
Q8. What is ADO.NET used for?
Answer: ADO.NET is used for database connectivity in .NET applications.
Q9. Difference between DataReader and DataSet?
Answer:
DataReader:
- Connected architecture.
- Faster.
- Read-only.
DataSet:
- Disconnected architecture.
- Stores data in memory.
- Supports modification.
Q10. What is ASP.NET?
Answer: ASP.NET is a framework for developing dynamic web applications.
Complete Unit IV Cheat Sheet
| Topic | Remember |
| Delegate | Method reference |
| Multicast Delegate | Multiple method execution |
| Event | Notification mechanism |
| Lambda | Anonymous function |
| Exception | Runtime error handling |
| try | Risky code |
| catch | Handle error |
| finally | Cleanup |
| throw | Generate exception |
| LINQ | Query in C# |
| Query Syntax | SQL-like syntax |
| Method Syntax | Lambda-based syntax |
| ADO.NET | Database connectivity |
| Connection | Opens database link |
| Command | Executes SQL |
| DataReader | Fast connected reading |
| DataSet | Disconnected storage |
| ASP.NET | Web application framework |
Common Programming Errors
❌ Forgetting to assign a method to a delegate.
✔ Correct:
delegateObject = MethodName;
❌ Calling an event from outside its declaring class.
✔ Correct:
Only the declaring class should raise the event.
❌ Not handling possible exceptions.
✔ Correct:
Use:
try-catch
❌ Writing incorrect LINQ syntax.
✔ Correct:
from x in collection
select x;
❌ Forgetting to open database connection.
✔ Correct:
connection.Open();
❌ Not closing database connections.
✔ Correct:
connection.Close();
⭐ One-Night Revision Box (Unit IV)
- Delegate = Type-safe method reference.
- Multicast delegate = Multiple methods through one delegate.
- Event = Notification mechanism based on delegates.
- Lambda = Anonymous function using =>.
- Exception handling prevents abnormal program termination.
- try contains risky code.
- catch handles exceptions.
- finally executes cleanup code.
- throw creates custom exceptions.
- LINQ allows querying data using C# syntax.
- LINQ works with objects, databases, and XML.
- ADO.NET provides database connectivity.
- Connection opens database communication.
- Command executes SQL statements.
- DataReader provides fast connected access.
- DataSet stores data in disconnected mode.
- ASP.NET is used for web application development.
