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