저는 평소에 여러 군데에서 상태값을 전달하기 위해 전역변수를 사용합니다.
예로 다음과 같습니다.
int gridViewOn;
private void gridViewOnOff_Click(object sender, EventArgs e) // dataGridView1 을 사용하고 있음
{
if (gridViewOn == 0)
{
gridViewOnOff.BackColor = Color.Orange;
dataGridView1.Visible = true;
gridViewOn = 1;
searchGridViewOnOff.BackColor = Color.Transparent;
dataGridView2.Visible = false;
searchGridViewOn = 0;
}
else if (gridViewOn == 1)
{
gridViewOnOff.BackColor = Color.Transparent;
dataGridView1.Visible = false;
gridViewOn = 0;
}
}
int searchGridViewOn;
private void searchGridViewOnOff_Click(object sender, EventArgs e) // dataGridView2 를 사용하고 있음
{
if (searchGridViewOn == 0)
{
searchGridViewOnOff.BackColor = Color.Orange;
dataGridView2.Visible = true;
searchGridViewOn = 1;
gridViewOnOff.BackColor = Color.Transparent;
dataGridView1.Visible = false;
gridViewOn = 0;
}
else if (searchGridViewOn == 1)
{
searchGridViewOnOff.BackColor = Color.Transparent;
dataGridView2.Visible = false;
searchGridViewOn = 0;
}
}
그런데 이런식으로 하면 전역변수가 프로그램이 죽을때까지 살아있는 것으로 알고 있기 때문에 메모리소모에 영향을 줄 거 같아서 전역 변수를 쓰지 않고 값을 넘겨주는 방법을 알고 싶습니다. 예를 들면 아래와 같은 방법 같이 하는 식으로 전역 변수를 사용하지 않는 것입니다.
(참고용으로 작성한 코드이며, 실행은 되지 않습니다.)
private void test(int i)
{
i = 5;
}
private void test1()
{
if (i = 5)
{
label1.Text = "i는 5이다.";
}
else
{
label1.Text = "i의 값이 반영되지 않음";
}
}
private void button_Click(object sender, EventArgs e)
{
test(i);
test1();
}
[최초 등록일: ]
[최종 수정일: 8/21/2017]