Хэш-таблицы
При помощи класса 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). Здесь этот метод используется для вывода строкового представления ключа.