Monday, July 18, 2005

Default Constrcutor of Structure

One of my colleagues mentioned that one can not add a default constructor to a structure definition. I tried that out and found that to be true. I believe it was a language design decision to have left out a default constructor from structure ADT (Abstract Data Type). But it is not a consistent design i believe, classes have default constructors so should the case be with structures. Following is the code snippet that i tried

using System;
using System.Collections.Generic;
using System.Text;

namespace DefaultConstructor
{
struct MyStructure
{
int i;

public void PrintMyValue()
{
Console.WriteLine(" My value is " + i.ToString());
}

public MyStructure(int iValue)
{
i = iValue;
}

public MyStructure()
{
Console.WriteLine(" I am default Ctor ");
}
}

class Program
{
static void Main(string[] args)
{
MyStructure myStruct;

//myStruct = new MyStructure(12);

myStruct = new MyStructure();

myStruct.PrintMyValue();
Console.ReadLine();
}
}
}

No comments: