PDA

View Full Version : علت ارور در ساختار (Struct)



SajjadKhati
یک شنبه 05 شهریور 1396, 20:24 عصر
سلام علت ارور در کد زیر چیه؟ :



public struct TestStruct
{
public int X { get; set; }
public int Y { get; set; }
public Button Btn { get; set; }
public TestStruct(string a)
{
this.X = 10;
this.Y = 20;
this.Btn = new Button();
}
}


و فراخونی در کلاس فرم و رویداد مورد نظر:



public Page2Class.TestStruct loc = new Page2Class.TestStruct();
public Page2Class.TestStruct Location
{
get
{
return this.loc;
}
set
{
this.loc = value;
}
}


public Page2Class.TestStruct loc_2;


private void btnStruct1_Click(object sender, EventArgs e)
{
this.loc.X = 4;
this.Location.X = 2;

MessageBox.Show(this.loc.X.ToString());
}




ولی چرا فراخونی زیر مشکل نداره؟ :





public Page2Class.TestStruct loc = new Page2Class.TestStruct();
public Page2Class.TestStruct Location
{
get
{
return this.loc;
}
set
{
this.loc = value;
}
}


public Page2Class.TestStruct loc_2;


private void btnStruct1_Click(object sender, EventArgs e)
{
this.loc_2 = this.loc;
this.loc_2.X = 7;


MessageBox.Show(this.loc.X.ToString());
}



یا به عبارتی ، علت ارور کد زیر در یک رویداد ، چیه (این پروپرتی Location ، همون پروپتی خود Form هست که نوع point رو برمیگردونه) ؟



this.Location.X = 5;