Bu benim ilk sorum burada ve her ne kadar muhtemelen çok nooby olsa da, uzunca bir süre beni şaşırttı. Açıklamak için basitleştirilmiş bir örnek kullanıyorum.Çağrılar yöntemini çağırır, bu çağrı, kamu int'yi etkilemez
Konsol Uygulaması'nda, bir public int 'x' ve 0'a ayarlayan bir 'test' setim var. Main'da 'test' denildiğinde, X'in değeri artık 1'dir (as beklenen). Bir Windows Form uygulaması aynı 'test' yöntemi çağırmak için bir Button_Click olay kullanırken
public int x = 0;
public void test()
{
x = 1;
}
static void Main(string[] args)
{
Program program = new Program();
program.test();
Console.WriteLine(program.x);
Console.ReadLine();
}
Ancak
(ve bu anlamıyorum budur), 'x' kalır 0 olarak:
public Form1()
{
InitializeComponent();
}
public int x = 0;
public void test()
{
x = 1;
}
private void button1_Click(object sender, EventArgs e)
{
Form1 form = new Form1();
form.test();
MessageBox.Show("" + x);
}
}
Özetlemek gerekirse, gerçekleşmek istediğim şey, 'klik' tıklandığında çağrılacak 'test' için 'x' değerinin 1 olarak değiştirilmesidir. Herkes bunun neden çalışmadığını açıklayabilir mi?
Teşekkürler! o duruşu çıkarın Form1 form = new Form1();
ile oluşturulan form için oluyor Çünkü
Açıklama için teşekkürler! – Sammmm