Interview questions and answers for .net, interview questions and answers on .net, interview questions and answers in .net, latest .net interview questions and answers, basic .net interview questions and answers, interview questions and answers for freshers in .net, interview questions and answers .net, interview questions and answers on .net for freshers
TOPIC : .NET Frame work continued
TOPIC : .NET Frame work continued
25. What are the improvements made in CAS in .NET 4.0?
The
CAS mechanism in .NET is used to control and configure the ability of
managed code. Earlier, as this policy was applicable for only native
applications, the security guarantee was limited. Therefore, developers
used to look for alternating solutions, such as operating system-level
solutions. This problem was solved in .NET Framework 4 by turning off
the machine-wide security. The shared and hosted Web applications can
now run more securely. The security policy in .NET Framework 4 has been
simplified using the transparency model. This model allows you to run
the Web applications without concerning about the CAS policies.
As a result of security policy changes in .NET Framework 4.0, you may encounter compilation warnings and runtime exceptions, if your try to use the obsolete CAS policy types and members either implicitly or explicitly. However, you can avoid the warnings and errors by using the <NetFx40_LegacySecurityPolicy> configuration element in the runtime settings schema to opt into the obsolete CAS policy behavior.
As a result of security policy changes in .NET Framework 4.0, you may encounter compilation warnings and runtime exceptions, if your try to use the obsolete CAS policy types and members either implicitly or explicitly. However, you can avoid the warnings and errors by using the <NetFx40_LegacySecurityPolicy> configuration element in the runtime settings schema to opt into the obsolete CAS policy behavior.
26. What is Microsoft Intermediate Language (MSIL)?
The
.NET Framework is shipped with compilers of all .NET programming
languages to develop programs. There are separate compilers for the
Visual Basic, C#, and Visual C++ programming languages in .NET
Framework. Each .NET compiler produces an intermediate code after
compiling the source code. The intermediate code is common for all
languages and is understandable only to .NET environment. This
intermediate code is known as MSIL
27. What is lazy initialization?
Lazy
initialization is a process by which an object is not initialized until
it is first called in your code. The .NET 4.0 introduces a new wrapper
class, System.Lazy<T>, for executing
the lazy initialization in your application. Lazy initialization helps
you to reduce the wastage of resources and memory requirements to
improve performance. It also supports thread-safety.
28. How many types of generations are there in a garbage collector?
Memory
management in the CLR is divided into three generations that are build
up by grouping memory segments. Generations enhance the garbage
collection performance. The following are the three types of generations
found in a garbage collector:
- Generation 0 - When an object is initialized, it is said to be in generation 0.
- Generation 1 - The objects that are under garbage collection process are considered to be in generation 1.
- Generation 2 - Whenever new objects are created and added to the memory, they are added to generation 0 and the old objects in generation 1 are considered to be in generation 2.
29. Explain covariance and contra-variance in .NET Framework 4.0. Give an example for each.
In
.NET 4.0, the CLR supports covariance and contravariance of types in
generic interfaces and delegates. Covariance enables you to cast a
generic type to its base types, that is, you can assign a instance of
type IEnumerable<Tl> to a variable of type IEnumerable<T2> where, T1 derives from T2. For example,IEnumerable<string> str1= new List<string>();
IEnumerable<object> str2= str1;
Contravariance allows you to assign a variable of Action<base> to a variable of type Action<derived>. For example,
IComparer<object> obj1 = GetComparer()
IComparer<string> obj2 = obj1;
.NET framework 4.0 uses some language keywords (out and in) to annotate
covariance and contra-variance. Out is used for covariance, while in is
used for contra-variance.
Variance can be applied only to reference types, generic interfaces, and
generic delegates. These cannot be applied to value types and generic
types.
30. How do you instantiate a complex number?
The following are the different ways to assign a value to a complex number:
By passing two Double values to its constructor. The first value represents the real, and the second value represents imaginary part of a complex number.
For example,
By assigning a Byte, SByte, Intl6, UIntl6, Int32, UInt32, Int64, UInt64, Single, or Double value to a Complex object. The assigned value represents the real part of the complex number, and its imaginary part becomes 0. For example,
By casting a Decimal or BigInteger value to a Complex object.
For example,
Assigning the value returned by an operator to a Complex variable.
For example,
By passing two Double values to its constructor. The first value represents the real, and the second value represents imaginary part of a complex number.
For example,
Complex c1 = new Complex(5, 8); /* It represents (5, 8) */
By assigning a Byte, SByte, Intl6, UIntl6, Int32, UInt32, Int64, UInt64, Single, or Double value to a Complex object. The assigned value represents the real part of the complex number, and its imaginary part becomes 0. For example,
Complex c2 = 15.3; /* It represents (15.3, 0) */
By casting a Decimal or BigInteger value to a Complex object.
For example,
Complex c3 = (Complex) 14.7; /* It represents (14.7, 0) */
Assigning the value returned by an operator to a Complex variable.
For example,
Complex c4 = c1 + c2; /* It represents (20.3, 8) */
ConversionConversion EmoticonEmoticon