The System.GC.Collect() method.
13. State the differences between the Dispose() and Finalize().
CLR uses the Dispose and Finalize methods to perform garbage collection of run-time objects of .NET
The Finalize method is called automatically by the runtime. CLR has a garbage collector (GC), which
periodically checks for objects in heap that are no longer referenced by any object or program. It calls the
Finalize method to free the memory used by such objects. The Dispose method is called by the programmer.
Dispose is another method to release the memory used by an object. The Dispose method needs to be explicitly
called in code to dereference an object from the heap. The Dispose method can be invoked only by the classes
that implement the IDisposable interface.
14. What is code access security (CAS)?
Code access security (CAS) is part of the .NET security model that prevents unauthorized access of resources
and operations, and restricts the code to perform particular tasks.
15. Differentiate between managed and unmanaged code?
Managed code is the code that is executed directly by the CLR instead of the operating system. The code
compiler first compiles the managed code to intermediate language (IL) code, also called as MSIL code. This
code doesn't depend on machine configurations and can be executed on different machines.
Unmanaged code is the code that is executed directly by the operating system outside the CLR environment. It
is directly compiled to native machine code which depends on the machine configuration.
In the managed code, since the execution of the code is governed by CLR, the runtime provides different
services, such as garbage collection, type checking, exception handling, and security support. These services
help provide uniformity in platform and language-independent behavior of managed code applications. In the
unmanaged code, the allocation of memory, type safety, and security is required to be taken care of by the
developer. If the unmanaged code is not properly handled, it may result in memory leak. Examples of
unmanaged code are ActiveX components and Win32 APIs that execute beyond the scope of native CLR.
16. What are tuples?
Tuple is a fixed-size collection that can have elements of either same or different data types. Similar to arrays, a
user must have to specify the size of a tuple at the time of declaration. Tuples are allowed to hold up from 1 to
8 elements and if there are more than 8 elements, then the 8th element can be defined as another tuple. Tuples
can be specified as parameter or return type of a method.
17. How can you turn-on and turn-off CAS?
YOU can use the Code Access Security Tool (Caspol.exe) to turn security on and off.
To turn off security, type the following command at the command prompt:
caspol -security off
To turn on security, type the following command at the command prompt:
caspol -security on
In the .NET Framework 4.0, for using Caspol.exe, you first need to set the <LegacyCasPolicy> element to