2013-12-03 2 views
2

У меня есть это перечислениеEnum в строку в VB.NET

Public Enum Applications 
    Unknown = 0 
    AA = 1 
    BB = 2 
    CC = 3 
End Enum 


Private Const CALLING_APP As Applications= Applications.CC 

CALLING_APP.ToString() дает мне "3". Но я хочу «CC» - что я делаю неправильно?

+0

Are U уверен? попробуйте что-то вроде 'Dim s = CALLING_APP.ToString', что у вас есть? –

+0

см. [Примеры и объяснения MSDN] (http://msdn.microsoft.com/en-us/library/16c1xs4z (v = vs.110) .aspx? Cs-save-lang = 1 & cs-lang = vb # code- фрагмент-4). Не забудьте переключить пример кода на VB, если эта ссылка не делает этого. – quetzalcoatl

+0

См. Раздел «Заметки для звонящих». Просто вызов ToString должен вернуть имя. Если это не так, что-то другое должно быть неправильным. Попробуйте использовать именно этот пример. Что он возвращает? Какая у вас версия VB/.Net. Я спрашиваю на всякий случай. Это то есть в Excel VBA или что-то в этом роде? – quetzalcoatl

ответ

2

попробовать это:

Private CALLING_APP As Applications= Applications.CC ' no "Const" 
' CALLING_APP.ToString will return CC 

Const может, по-видимому, как изменить NET распознает константу. Как Const, я получаю Cannot find the method on the object instance, а Intellisense «видит» его правильно. Если вы должны использовать Const по какой-то причине, вы можете получить текст вернуть этот путь:

Dim strName as string = [Enum].GetName(GetType(Applications), CALLING_APP)) 

Это в основном то, что делает .ToString для нас за кулисами. Набрав его, ваш код должен работать.

4

Pass "F" в качестве параметра для ToString() метода: CALLING_APP.ToString("F")

+0

, который даст вам «3.00» – Plutonix

+1

@Plutonix Вы попробовали? [Референс MSDN] (http://msdn.microsoft.com/en-us/library/a0h36syw (v = vs.110) .aspx) –

+0

Это работает для меня, даже если это Const. Ваша переменная имеет тип Object, но переменная в вопросе имеет тип Enum. – alu

Смежные вопросы