Hai ra

interview questions and answers for .NET

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

dot net interview questions and answers

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.
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,

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) */
 
 

Previous
Next Post »