2015-03-07 2 views
-3

Можно ли получить доступ к private string из другого private void на тот же форме, а не другая формы?# C - значения доступа из другой частной пустоты на тот же форме

private void english() 
{ 
    string value1 = "Hello!"; 
} 

private void button1_Click(object sender, EventArgs e) 
{ 
    label1.Text = value1; 
} 

Ошибка: Имя «value1» не существует в текущем контексте

+2

Вы читали какую-либо книгу? Потому что, вы первый человек, которого я когда-либо видел, которые используют методы talkin ggabout как «что-то». Это «методы». –

+0

@FarhadJabiyev - Что не так, если я пытаюсь спросить и попытаться понять ?! этот комментарий заставляет пользователей застенчиво снова спрашивать! –

+1

Ничего страшного, конечно. Но это очень фундаментальные элементы программирования. Было бы лучше немного узнать о них, прежде чем пытаться что-то написать. –

ответ

1

Вы пытаетесь получить доступ к локальной переменной, которая находится внутри другого метода. Локальные переменные - это переменные, объявленные в рамках метода (в вашем случае - в методе english(). Доступ к этим переменным можно получить только из того же метода.

Однако, что вы можете сделать, это создать поле класса вне метод english(), в этом случае он будет доступен из любого не статического метода по данному классу.

private string value1; 
private void english() 
{ 
    value1 = "Hello!"; 
} 

private void button1_Click(object sender, EventArgs e) 
{ 
    label1.Text = value1; 
} 
1

как и предыдущий ответ Прицелы определяет, где ваши переменные доступны Прицелы можно рассматривать как «причудливое название». для скобок, если вы очень новичок в C#.

class Program 
{ 
    private string _sPrivate; //This is a private variable, only accessable to methods within the class. 
    public string PublicString; //This is a public variable, it is accessable outside the class. 

    private void _privateMethod(string this_is_an_argument) //This is a method, since it is private, it is only available inside the above class. 
    { 
     string thisIsAvar; //this has been defined inside _privateMethod, and is ONLY available inside _privateMethod. 
    } 
    public void PublicMethod() //This is a public method. It can be called outside the class, on the class itself. Code running in here can still access the private variables inside the class. 
    { 
     _sPrivate = "I just changed the private var"; //This will work. 
     thisIsAvar = "This is impossible, because thisIsAvar doesn't exist here"; //This will throw an error. Since thisIsAvar isn't defined inside this scope. 
    } 
} 
Смежные вопросы