Иллюстрированный самоучитель по Visual Basic .NET

Хэш-таблицы

При помощи класса Hashtable можно сохранить информацию, полученную при вызове метода GetEnvironmentVariables класса System.Environment. Приведенная ниже небольшая программа выводит имена и значения всех переменных окружения, определенных в системе. Программу можно завершить в любой момент, просто закрыв консольное окно.

Сначала просмотрите листинг, а потом мы объясним пару неочевидных моментов:

1 Option Strict On
2 Imports System.Environment
3 Module Modulel
4 Sub Main()
5 Dim eVariables As Hashtable
6 eVariables =CType(GetEnvironmentVariables().Hashtable)
7 Console.Writel_ine("Press Enter to see the next item")
8 Dim thing As Object
9 For Each thing In eVariables.Keys
10 Console.WriteLineC'The environment variable named " & _
11 thing. ToString() & "has value " & eVariables(thing).ToString())
12 Console. ReadLine()
13 Next
14 End Sub
15 End Module

Прежде всего использованный в строке 6 упрощенный синтаксис имени метода стал возможным благодаря вызову Imports в строке 2:

eVariables =CType(GetEnvironmentVariables(),Hashtable)

Значение, полученное при вызове GetEnvironmentVariables(), преобразуется в хэш-таблицу функцией СType [Возможно, в будущих версиях .NET такое преобразование работать не будет.]. В строках 8 и 9 для перебора элементов хэш-таблицы используется переменная типа Object:

Dim thing As Object
For Each thing In eVariables.Keys

В стандартных хэш-таблицах хранятся только объекты. Но поскольку в VB.NET все данные являются объектными, строковые значения переменных окружения также могут сохраняться в переменной thing. Программа перебирает содержимое коллекции Keys и при помощи свойства Item для каждого ключа получает ассоциированное значение. Конструкцию eVariables(thing) в строке 11 также можно записать в следующем виде:

eVariables.Item(thing)

В строке 11 вызывается метод ToString, определенный в каждом классе (этот важный метод описан в главе 5). Здесь этот метод используется для вывода строкового представления ключа.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.