mahdieh5
سه شنبه 18 مرداد 1390, 00:44 صبح
با سلام
در کد زیر وقتی از طریق شی sh مقادیر متغیرهای X و Y کلاس پایه را مقدار دهی میکنم، سپس از طریق شی t1 مقدار متغیر Z راتعیین می کنم. مقدار X و Y را در توابع prime و squer صفر حساب میکند. گویا مقدار دهی نشده. مشکل کجاست؟
private void button1_Click(object sender, EventArgs e)
{
shape sh = new shape();
squer1 t1 = new squer1();
sh.X = Convert.ToInt32(textBox3.Text);
sh.Y = Convert.ToInt32(textBox4.Text);
t1.Z = Convert.ToInt32(textBox5.Text);
textBox1.Text = t1.prime().ToString();
textBox2.Text = t1.area().ToString();
}
تعریف کلاسها:
public class shape
{
private int x;
private int y;
public int X
{
get
{
return x;
}
set
{
x = value;
}
}
public int Y
{
get
{
return y;
}
set
{
y = value;
}
}
public virtual int area()
{
return (X*Y);
}
public virtual int prime()
{
return (X + Y);
}
}
public class squer1:shape
{
private int z;
public int Z
{
get
{
return z;
}
set
{
z = value;
}
}
public override int area()
{
return (X * Y * Z);
}
public override int prime()
{
return (X+Y)+Z;
}
}
ولی به این صورت درست جواب میدهد:
private void button1_Click(object sender, EventArgs e)
{
squer1 t1 = new squer1();
t1.X = Convert.ToInt32(textBox3.Text);
t1.Y = Convert.ToInt32(textBox4.Text);
t1.Z = Convert.ToInt32(textBox5.Text);
textBox1.Text = t1.prime().ToString();
textBox2.Text = t1.area().ToString();
}
در کد زیر وقتی از طریق شی sh مقادیر متغیرهای X و Y کلاس پایه را مقدار دهی میکنم، سپس از طریق شی t1 مقدار متغیر Z راتعیین می کنم. مقدار X و Y را در توابع prime و squer صفر حساب میکند. گویا مقدار دهی نشده. مشکل کجاست؟
private void button1_Click(object sender, EventArgs e)
{
shape sh = new shape();
squer1 t1 = new squer1();
sh.X = Convert.ToInt32(textBox3.Text);
sh.Y = Convert.ToInt32(textBox4.Text);
t1.Z = Convert.ToInt32(textBox5.Text);
textBox1.Text = t1.prime().ToString();
textBox2.Text = t1.area().ToString();
}
تعریف کلاسها:
public class shape
{
private int x;
private int y;
public int X
{
get
{
return x;
}
set
{
x = value;
}
}
public int Y
{
get
{
return y;
}
set
{
y = value;
}
}
public virtual int area()
{
return (X*Y);
}
public virtual int prime()
{
return (X + Y);
}
}
public class squer1:shape
{
private int z;
public int Z
{
get
{
return z;
}
set
{
z = value;
}
}
public override int area()
{
return (X * Y * Z);
}
public override int prime()
{
return (X+Y)+Z;
}
}
ولی به این صورت درست جواب میدهد:
private void button1_Click(object sender, EventArgs e)
{
squer1 t1 = new squer1();
t1.X = Convert.ToInt32(textBox3.Text);
t1.Y = Convert.ToInt32(textBox4.Text);
t1.Z = Convert.ToInt32(textBox5.Text);
textBox1.Text = t1.prime().ToString();
textBox2.Text = t1.area().ToString();
}