0% found this document useful (0 votes)
65 views2 pages

C# Questions and Answers

Namespaces organize classes within the .NET Framework and dictate logical code structure, analogous to Java packages. Constructors initialize class instances and can be overloaded. The Global Assembly Cache stores shared assemblies to allow application sharing instead of per-application distribution. Strings in C# are immutable for efficiency, while StringBuilder handles mutable strings. The .NET Framework solves "DLL Hell" through assembly metadata for loading by name, version, and certificate.

Uploaded by

janpriya16
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views2 pages

C# Questions and Answers

Namespaces organize classes within the .NET Framework and dictate logical code structure, analogous to Java packages. Constructors initialize class instances and can be overloaded. The Global Assembly Cache stores shared assemblies to allow application sharing instead of per-application distribution. Strings in C# are immutable for efficiency, while StringBuilder handles mutable strings. The .NET Framework solves "DLL Hell" through assembly metadata for loading by name, version, and certificate.

Uploaded by

janpriya16
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

C# Questions and Answers

What are namespaces, and how they are used?


Namespaces are used to organize classes within the .NET Framework. They dictate the logical
structure of the code. They are analogous to Java packages, with the key difference being Java
packages define the physical layout of source files (directory structure) while .NET namespaces do
not. However, many developers follow this approach and organize their C# source files in directories
that correlate with namespaces. The .NET Framework has namespaces defined for its many classes,
such as System.Xml--these are utilized via the using statement. Namespaces are assigned to classes
via the namespace keyword.

What is a constructor?
A constructor is a class member executed when an instance of the class is created. The constructor
has the same name as the class, and it can be overloaded via different signatures. Constructors are
used for initialization chores.

What is the GAC, and where is it located?


The GAC is the Global Assembly Cache. Shared assemblies reside in the GAC; this allows
applications to share assemblies instead of having the assembly distributed with each application.
Versioning allows multiple assembly versions to exist in the GAC--applications can specify version
numbers in the config file. The gacutil command line tool is used to manage the GAC.

Why are strings in C# immutable?


Immutable means string values cannot be changed once they have been created. Any modification to
a string value results in a completely new string instance, thus an inefficient use of memory and
extraneous garbage collection. The mutable System.Text.StringBuilder class should be used when
string values will change.

What is DLL Hell, and how does .NET solve it?


DLL Hell describes the difficulty in managing DLLs on a system; this includes multiple copies of a
DLL, different versions, and so forth. When a DLL (or assembly) is loaded in .NET, it is loaded by
name, version, and certificate. The assembly contains all of this information via its metadata. The
GAC provides the solution, as you can have multiple versions of a DLL side-by-side.

How are methods overloaded?


Methods are overloaded via different signatures (number of parameters and types). Thus, you can
overload a method by having different data types, different number of parameters, or a different order
of parameters.

How do you prevent a class from being inherited?


The sealed keyword prohibits a class from being inherited.

What is the execution entry point for a C# console


application?
The Main method.
How do you initiate a string without escaping each
backslash?
You put an @ sign in front of the double-quoted string.
String ex = @"This has a carriage return\r\n"

What is the difference between a struct and a class?


Structs cannot be inherited. Structs are passed by value and not by reference. Structs are stored on
the stack not the heap. The result is better performance with Structs.

What is a singleton?
A singleton is a design pattern used when only one instance of an object is created and shared; that
is, it only allows one instance of itself to be created. Any attempt to create another instance simply
returns a reference to the first one. Singleton classes are created by defining all class constructors as
private. In addition, a private static member is created as the same type of the class, along with a
public static member that returns an instance of the class. Here is a basic example:
public class SingletonExample {
private static SingletonExample _Instance;
private SingletonExample () { }
public static SingletonExample GetInstance() {
if (_Instance == null) {
_Instance = new SingletonExample ();
}
return _Instance;
}
}

What is boxing?
Boxing is the process of explicitly converting a value type into a corresponding reference type.
Basically, this involves creating a new object on the heap and placing the value there. Reversing the
process is just as easy with unboxing, which converts the value in an object reference on the heap
into a corresponding value type on the stack. The unboxing process begins by verifying that the
recipient value type is equivalent to the boxed type. If the operation is permitted, the value is copied to
the stack.

You might also like