Questions :
- How do you pass parameters to a method by reference in C#?
- What is the difference between "ref" and "out" keywords in C#?
- Explain the concept of boxing and unboxing in C#.
- What are generics in C#?
- How do you define a generic class in C#?
To pass parameters by reference in C#, you use the ref
or out
keywords. This allows the method to modify the argument's value, and the changes will be reflected outside the method.
public void ModifyValue(ref int number) { number = number * 2; } // Usage int myNumber = 5; ModifyValue(ref myNumber); Console.WriteLine(myNumber); // Output: 10
In this example, the ModifyValue
method doubles the value of myNumber
. The ref
keyword ensures that the change is reflected outside the method.
2. Difference Between "ref" and "out" Keywords in C#:
ref
: Requires that the variable be initialized before it is passed to the method. The method can read and modify the variable's value.
public void RefExample(ref int number) { number = number + 10; } // Usage int myNumber = 5; RefExample(ref myNumber); // myNumber must be initialized before passing Console.WriteLine(myNumber); // Output: 15
out
: Does not require that the variable be initialized before it is passed to the method. The method must assign a value to the variable before the method returns.public void OutExample(out int number) { number = 10; } // Usage int myNumber; OutExample(out myNumber); // myNumber does not need to be initialized before passing Console.WriteLine(myNumber); // Output: 10
3. Boxing and Unboxing in C#:
Boxing and unboxing are processes that convert a value type to an object type (boxing) and vice versa (unboxing).
- Boxing: Converting a value type to an object type, which stores the value on the heap.
int value = 123; object boxedValue = value; // Boxing
- Unboxing: Extracting the value type from an object type, which requires explicit casting.
object boxedValue = 123; int value = (int)boxedValue; // Unboxing
4. Generics in C#:
Generics allow you to define classes, methods, and data structures with a placeholder for the type of data they store or use. This enables type safety, code reuse, and performance improvements.
5. Defining a Generic Class in C#:
A generic class is defined using a type parameter in angle brackets (<>
). This type parameter can be used throughout the class to define members that work with the specified type.
public class GenericClass<T> { private T data; public GenericClass(T value) { data = value; } public T GetData() { return data; } public void SetData(T value) { data = value; } } // Usage GenericClass<int> intInstance = new GenericClass<int>(10); Console.WriteLine(intInstance.GetData()); // Output: 10 GenericClass<string> stringInstance = new GenericClass<string>("Hello"); Console.WriteLine(stringInstance.GetData()); // Output: HelloIn this example, the
GenericClass<T>
is a generic class that can work with any data type specified when creating an instance of the class. The type parameter T
is used for the class member data
and the methods GetData
and SetData
.
Comments
Post a Comment