CSharp Programming

CSharp Programming

Generics has 9 Questions
Which one of the following classes are present System.Collections.Generic namespace?
  1. Stack
  2. Tree
  3. SortedDictionary
  4. SortedArray

1 and 2 only
2 and 4 only
1 and 3 only
All of the above
For the code snippet shown below, which of the following statements are valid?
public class Generic<T>
{
    public T Field; 
    public void TestSub()
    {
        T i = Field + 1;
    }
}
class MyProgram
{
    static void Main(string[] args)
    {
        Generic<int> gen = new Generic<int>();
        gen.TestSub();
    }
}

Addition will produce result 1.
Result of addition is system-dependent.
Program will generate run-time exception.
Compiler will report an error: Operator '+' is not defined for types T and int.
Which of the following statements are valid about generics in .NET Framework?
  1. Generics is a language feature.
  2. We can create a generic class, however, we cannot create a generic interface in C#.NET.
  3. Generics delegates are not allowed in C#.NET.
  4. Generics are useful in collection classes in .NET framework.
  5. None of the above

1 and 2 Only
1, 2 and 3 Only
1 and 4 Only
All of the above
Which of the following statements is valid about generic procedures in C#.NET?

All procedures in a Generic class are generic.
Only those procedures labeled as Generic are generic.
Generic procedures can take at the most one generic parameter.
Generic procedures must take at least one type parameter.
For the code snippet shown below, which of the following statements are valid?
public class TestASTIWZ
{
    public void TestSub<M> (M arg)
    {
        Console.Write(arg);
    }
}
class MyProgram
{
    static void Main(string[] args)
    {
        TestASTIWZ bix = new TestASTIWZ();
        bix.TestSub("ASTIWZ ");
        bix.TestSub(4.2f);
    }
}

Program will compile and on execution will print: ASTIWZ 4.2
A non generic class Hello cannot have generic subroutine.
Compiler will generate an error.
Program will generate a run-time exception.
For the code snippet given below, which of the following statements is valid?
public class Generic<T>
{
    public T Field;
}
class Program
{
    static void Main(string[ ] args)
    {
        Generic<String> g = new Generic<String>();
        g.Field = "Hello";
        Console.WriteLine(g.Field);
    }
}

It will print string "Hello" on the console.
Name Generic cannot be used as a class name because it's a keyword.
Compiler will give an error.
Member Field of class Generic is not accessible directly.
For the code snippet given below, which of the following statements are valid?
public class MyContainer<T> where T: IComparabte
{
    // Insert code here
}
  1. Class MyContainer requires that it's type argument must implement IComparabte interface.
  2. Type argument of class MyContainer must be IComparabte.
  3. Compiler will report an error for this block of code.
  4. This requirement on type argument is called as constraint.

1 and 2 Only
1, 2 and 3 Only
1 and 4 Only
All of the above
For the code snippet given below, which of the following statements are valid?
public class MyContainer<T> where T: class, IComparable
{
    //Insert code here
}
  1. Class MyContainer requires that it's type argument must implement IComparable interface.
  2. Compiler will report an error for this block of code.
  3. There are multiple constraints on type argument to MyContainer class.
  4. Class MyContainer requires that its type argument must be a reference type and it must implement IComparable interface.

1 and 2 Only
3 and 4 Only
2 and 3 Only
All of the above
Which of the following statements is valid about advantages of generics?

Generics shift the burden of type safety to the programmer rather than compiler.
Generics require use of explicit type casting.
Generics provide type safety without the overhead of multiple implementations.
Generics eliminate the possibility of run-time errors.