the output of this program is
count = 1
count = 1
count = 1
and it suppose to be :
count = 1
count = 2
count = 3
what's the wrong with my code ?
or how can i get the output 1,2,3
class Employee
{
int id;
string name;
double salary;
int objectCount;
public int count
{
get { return objectCount; }
}
public int ID
{
get { return id; }
set
{
if (value > 1000)
this.id = value;
else
this.id = 1000;
}
}
public string NAME
{
get { return name; }
set
{
if (value.Length != 0)
this.name = value;
else
this.name = "unknown";
}
}
public double SALARY
{
get { return salary; }
set
{
if (value > 0)
this.salary = value;
else
{
this.salary = 0;
Console.WriteLine("Wrong Salary Value .. !!");
}
}
}
public Employee()
{
this.id = 1000;
this.name = "";
this.salary = 0;
objectCount++;
}
public Employee(int x, string y, double z)
{
ID = x;
NAME = y;
SALARY = z;
objectCount++;
}
public void Allowance(double x)
{
if (x > 0)
this.salary += x;
else
Console.WriteLine("Invalied Allowance");
}
public void Dedicate(double x)
{
if (x > 0)
this.salary -= x;
else
Console.WriteLine("Invalied Dedicate");
}
public string EmployeeToString()
{
return string.Format("id : {0}\nname : {1}\nsalary : {2}", id, name, salary);
}
~Employee()
{
objectCount--;
}
}
Employee emp1 = new Employee(1200, "A.matter", 900);
Employee emp2 = new Employee(1400, "A.bader", 1100);
Employee emp3 = new Employee();
Console.WriteLine("count = {0}",emp1.count);
Console.WriteLine("count = {0}",emp2.count);
Console.WriteLine("count = {0}",emp3.count);
Console.ReadKey();