• Properties - General Questions
11. 

If Sample class has a Length property with get accessor then which of the following statements will work correctly?

A.
Sample m = new Sample(); 
m.Length = 10;
B.
Sample m = new Sample(); 
m.Length = m.Length + 20;
C.
Sample m = new Sample(); 
int l;
l = m.Length;
D.
Sample.Length = 20;
E.
Console.WriteLine(Sample.Length);

12. 

An Account class has a property called accountNo and acc is a reference to a bank object and we want the C#.NET code snippet given below to work. Which of the following options will ensure this functionality?

acc.accountNo = 10; 
Console.WriteLine(acc.accountNo);

A. Declare accountNo property with both get and set accessors.
B. Declare accountNo property with only get accessor.
C. Declare accountNo property with get, set and normal accessors.
D. Declare accountNo property with only set accessor.
E. None of the above

13. 

Suppose a Student class has an indexed property. This property is used to set or retrieve values to/from an array of 5 integers called scores[]. We want the property to report "Invalid Index" message if the user attempts to exceed the bounds of the array. Which of the following is the correct way to implement this property?

A.
class Student
{
    int[] scores = new int[5] {3, 2, 4,1, 5}; 
    public int this[ int index ]
    { 
        set
        { 
            if (index < 5)
                scores[index] = value; 
            else
                Console.WriteLine("Invalid Index");
        } 
    } 
}
B.
class Student
{
    int[] scores = new int[5] {3, 2, 4, 1, 5};
    public int this[ int index ]
    { 
        get
        { 
            if (index < 5)
                return scores[ index ]; 
            else
            { 
                Console.WriteLine("Invalid Index"); return 0; 
            } 
        } 
        set
        { 
            if (index < 5)
                scores[ index ] = value;
            else 
                Console.WriteLine("Invalid Index"); 
        } 
    } 
}
C.
class Student
{
    int[] scores = new int[5] {3, 2, 4, 1, 5}; 
    public int this[ int index ]
    { 
        get
        { 
            if (index < 5)
                return scores[ index ]; 
                else
                { 
                    Console.WriteLine("Invalid Index"); 
                    return 0; 
                } 
        } 
    } 
}
D.
class Student
{
    int[] scores = new int[5] {3, 2, 4, 1, 5}; 
    public int this[ int index ]
    { 
        get
        {
            if (index < 5)
                scores[ index ] = value; 
            else
            { 
                Console.WriteLine("Invalid Index");
            } 
        }
        set
        { 
            if (index < 5)
                return scores[ index ];
            else
            { 
                Console.WriteLine("Invalid Index");
                return 0;
            }
        }
    }
}

14. 

Which of the following is the correct way to implement a read only property Length in a Sample class?

A.
class Sample
{
    int len;
    public int Length
    {
        get
        {
            return len;
        } 
    } 
}
B.
class Sample
{
    public int Length
    {
        get
        {
            return Length;
        } 
    } 
}
C.
class Sample
{
    int len;
    public int Length
    {
        get
        {
            return len;
        } 
        set
        {
            len = value;
        } 
    } 
}
D.
class Sample
{
    int len;
    public int Length
    {
        Readonly get
        {
            return len;
        } 
    } 
}

15. 

Which of the folowing does an indexer allow to index in the same way as an array?

  1. A class
  2. A property
  3. A struct
  4. A function
  5. An interface

A. 1, 3, 5
B. 2, 4
C. 3, 5
D. 3, 4, 5