Почему я получаю переменную не нашли ошибки? -- vb.net пол Связанный проблема

Why am I getting variable not found errors?


2
vote

проблема

русский

Я получаю незаконченные переменные ошибки с моим кодом, и я не знаю, почему! Переменные объявлены выше, но при использовании они не найдены! Ошибка по ошибке возникает на переменных с двумя звездами

 <код>     If hour >= 10 Then         Dim hourAnn = My.Resources.ResourceManager.GetObject("_" + hour.ToString)     Else         Dim hourAnn = My.Resources.ResourceManager.GetObject("_0" + hour.ToString)     End If      If minute >= 10 Then         Dim minuteAnn = My.Resources.ResourceManager.GetObject("_" + minute.ToString)     Else         Dim minuteAnn = My.Resources.ResourceManager.GetObject("_" + minute.ToString)     End If      'Ann Type     If annType = 1 Then         My.Computer.Audio.Play(My.Resources.nowApproachPlatform, AudioPlayMode.WaitToComplete)  'The train now approaching platform         My.Computer.Audio.Play(platformAnn, AudioPlayMode.WaitToComplete)                       'x         My.Computer.Audio.Play(My.Resources.isThe, AudioPlayMode.WaitToComplete)                'is the         My.Computer.Audio.Play(**hourAnn**, AudioPlayMode.WaitToComplete)                '<hour>         My.Computer.Audio.Play(**minuteAnn**, AudioPlayMode.WaitToComplete)                '<min>   
Английский оригинал

I am getting undeclared variable errors with my code and I don't know why! The variables are declared above, but when being used, they are not found! The error in question occurs on the variables with two stars

    If hour >= 10 Then         Dim hourAnn = My.Resources.ResourceManager.GetObject("_" + hour.ToString)     Else         Dim hourAnn = My.Resources.ResourceManager.GetObject("_0" + hour.ToString)     End If      If minute >= 10 Then         Dim minuteAnn = My.Resources.ResourceManager.GetObject("_" + minute.ToString)     Else         Dim minuteAnn = My.Resources.ResourceManager.GetObject("_" + minute.ToString)     End If      'Ann Type     If annType = 1 Then         My.Computer.Audio.Play(My.Resources.nowApproachPlatform, AudioPlayMode.WaitToComplete)  'The train now approaching platform         My.Computer.Audio.Play(platformAnn, AudioPlayMode.WaitToComplete)                       'x         My.Computer.Audio.Play(My.Resources.isThe, AudioPlayMode.WaitToComplete)                'is the         My.Computer.Audio.Play(**hourAnn**, AudioPlayMode.WaitToComplete)                '<hour>         My.Computer.Audio.Play(**minuteAnn**, AudioPlayMode.WaitToComplete)                '<min> 
</div
  
   
   

Список ответов

4
 
vote
vote
Лучший ответ
 
<Р> переменные известны только в области видимости они созданы. <Р> Если вы создаете переменную в <код> a, b, c, ...8 -структуре, они известны только внутри, что <код> a, b, c, ...9 . То же рассчитывает на <код> a0 , <код> a1 -loops и любой другой "содержащий" структуры.

Решение для вашего кода:

 <код> a2  
<Р> Хотите узнать больше? Читать здесь
 

Variables are only known in the scope they are created.

If you create a variable in an if-structure, they are only known inside that if. Same counts for functions, for-loops and any other "containing" structures.

Solution for your code:

Dim hourAnn = ""  If hour >= 10 Then         hourAnn = My.Resources.ResourceManager.GetObject("_" + hour.ToString)     Else         hourAnn = My.Resources.ResourceManager.GetObject("_0" + hour.ToString)     End If  Dim minuteAnn = "" If minute >= 10 Then     minuteAnn = My.Resources.ResourceManager.GetObject("_" + minute.ToString) Else     minuteAnn = My.Resources.ResourceManager.GetObject("_" + minute.ToString) End If 

Want to learn more? Read here

</div
 
 
   
   

Связанный проблема

0  У FileHelpers есть классы, которые могут поддерживать неограниченную длину записи данных?  ( Does filehelpers have classes which can support unlimited data record length ) 
<код> <FixedLengthRecord(FixedMode.AllowVariableLength)> Public Class FileRecord <FieldFixedLength(1)> <FieldTrim(TrimMode.Both), FieldOptional()> ...

0  Предварительные изображения в приложении Windows RT  ( Preloading images in windows rt app ) 
У меня есть приложение для хранения Windows, работающее на Windows RT, который включает в себя список изображений. Из них довольно много, поэтому при загрузке...

2  VS2008 - VB.NET Шрифт Dialog - Фильтровальные шрифты по кодовой странице / языке  ( Vs2008 vb net font dialog filter fonts by codepage language ) 
Обновление (в ответ на первый ответ, от Passant Hans): Я думаю, что я не объяснил моего использования достаточно хорошо. Это приложение будет разработано для ...

3  Печать в принтере PDF программно  ( Printing to a pdf printer programmatically ) 
Я пытаюсь программно распечатать существующий файл в PDF в Visual Basic 2008. Наши текущие соответствующие активы: Visual Studio 2008 Professional Adobe Acr...

2  Замените оператор импорта и загрузите DLL в код для использования объекта?  ( Replace imports statement and load dll in code to use object ) 
У меня в настоящее время есть приложения, которые используют бесплатную библиотеку регистрации NLOG (DLL), которую я ссылаюсь в моем проекте VB.NET (Импорт оп...

0  Не удается прочитать последовательные данные, полученные в TextBox  ( Cannot read serial data recieved to textbox ) 
Я пытаюсь написать свои последовательные данные, полученные в текстовое поле из класса в мою форму. Я использую код: <код> Public Shared Sub DataReceviedH...

0  Можно ли программно получить общую ссылку Dropbox, не отправляя пользователя на страницу входа в Dropbox?  ( Is it possible to programmatically get a shared dropbox link without sending the ) 
Я разрабатываю веб-приложение в VB.NET 4.5 и с помощью третьей стороны: <Код> Dropnet . Я задаюсь вопросом, возможно ли получить общую ссылку из Dropbox- прог...

0  Как прекратить вставку записей в таблице SQL, когда предел достигнут  ( How to stop inserting records in sql table when a limit is reached ) 
Я использую vb.net и sql server 2005. Моя проблема в том, что я хочу дать пользователю сообщение, если ограничение делегата достиг этого курса. Видишь, у ...

1  Не может получить доступ к существующим константам проекта  ( Cannot access referenced project constants ) 
У меня есть проблема с использованием модуля в нескольких проектах в том же решении (регулярный проект и тестовый проект для модульных тестов). Я пытаюсь след...

2  Обращайтесь с событиями для динамического (время выполнения) - vb.net  ( Handle events for dynamic run time controls vb net ) 
У меня есть элемент управления WebBrowser, который создается и добавляется в форму во время выполнения. Как подключить этот элемент управления подпрограммой...

2  Веб-страница ASP.NET в устройство подключения к порту USB (COM) сервера  ( Asp net web page to device connect to servers usb com port ) 
Я работаю над способом отправлять команды на доску Arduino с веб-сайта. Доска Arduino подключается к компьютеру через порт USB (COM-порт). Мне удалось подкл...

-1  Как получить ячейку из панели макета стола VB.Net  ( How do i get the cell from a table layout panel vb net ) 
Как получить, какую ячейку пользователь нажал, если он не имеет контроля в ячейке. То, что мне действительно нужно, для изображения появляются в месте ячейки,...

0  Ошибка, генерирующая XML из XSD (с помощью xsd.exe) vb.net  ( Error generating xml from an xsd using xsd exe vb net ) 
Хорошо, посмотрите, что я пытаюсь сделать, это построить XML через XSD для этого, я использую класс, который я построен с инструментом xsd.exe (voucher_build_...

0  Как я могу прочитать, что является URL-адресом назначения, когда требуется перенаправление?  ( How can i read what the destination url is when a redirect is requested ) 
Я использую <код> MasterPage с панелью динамической меню по всей странице. Если пользователь запросил перенаправить обратно на страницу входа в систему (HOME...

3  Как использовать свойство тега с формами и кодом в VB 2012?  ( How do i use the tag property with forms and code in vb 2012 ) 
Я пишу программу, используя базу данных для клиентов и техников. Основная форма (CUSTORCTINCIDENTS) имеет настроенную систему, которая открывает другую форму ...

Связанный проблема

0  У FileHelpers есть классы, которые могут поддерживать неограниченную длину записи данных? 
0  Предварительные изображения в приложении Windows RT 
2  VS2008 - VB.NET Шрифт Dialog - Фильтровальные шрифты по кодовой странице / языке 
3  Печать в принтере PDF программно 
2  Замените оператор импорта и загрузите DLL в код для использования объекта? 
0  Не удается прочитать последовательные данные, полученные в TextBox 
0  Можно ли программно получить общую ссылку Dropbox, не отправляя пользователя на страницу входа в Dropbox? 
0  Как прекратить вставку записей в таблице SQL, когда предел достигнут 
1  Не может получить доступ к существующим константам проекта 
2  Обращайтесь с событиями для динамического (время выполнения) - vb.net 
2  Веб-страница ASP.NET в устройство подключения к порту USB (COM) сервера 
-1  Как получить ячейку из панели макета стола VB.Net 
0  Ошибка, генерирующая XML из XSD (с помощью xsd.exe) vb.net 
0  Как я могу прочитать, что является URL-адресом назначения, когда требуется перенаправление? 
3  Как использовать свойство тега с формами и кодом в VB 2012?