Возвращает ключ или индекс предмета коллекции в зависимости от переданного зачения параметра.
Collection.GetKey(eIndex) |
Параметры
- eIndex
-
Указывает требуемое выражение, которое представляет позицию предмета в коллекции. Это выражение может быть одним из двух типов:
-
Численное. Выражение eIndex должно иметь значение начиная с 1 и до значения свойства Count коллекции.
-
Строковое. Выражение eIndex должно соответствовать cKey, которое было указано при добавлении предмиета в коллекцию.
-
Возвращаемое значение
В приведенной ниже таблице перечислены значения, которые может принимать GetKey.
| Возвращаемое значение | Условие |
|---|---|
|
Строка (ключ) |
Когда в качестве параметра посылается индекс или челочисленное значение |
|
Челочисленное (инедкс) |
Когда в качестве параметра посылается ключ или строка |
|
Пустая строка("") |
Когда в качестве параметра посылается индекс, который не существует или в случае, когда предметы добавлялись в коллекцию без использования ключей |
|
0 |
Когда в качестве параметра посылается несуществующий ключ |
Примечания
-
Поскольку метод GetKey возвращает значение, вам необходимо добавить оператор RETURN в конец GetKey в коде исходника для любых модифицируемых вами субклассов. Например:
Скопировать кодRETURN DODEFAULT( eIndex )
Если вы не желаете возвращать значение, используйте команду RETURN без объединения с функцией DODEFAULT().
-
Для определения - использовались ли ключи при добавлении предметов в коллекцию, вы можете использовать предложение
GetKey(1)и фукнцию EMPTY() для проверки возврата пустого значения, как это показано ниже:
Скопировать код? !EMPTY(Collection.GetKey(1))
-
Для извлечения индекса или ключа предмета коллекции внутри цикла FOR EACH, используйте обычный цикл FOR вместо цикла FOR EACH.
-
Visual FoxPro сгенерирует ошибку, если в качестве параметра был послан неверный тип или параметр вообще не был передан методу GetKey.
Пример
В приведенном ниже примере показываются задачи, выполняемые после создания коллекции и добавления в нее предметов:
-
Проверка наличия ключей у предметов.
-
Извлечение и отображение ключа для второго предмета коллекции.
Скопировать код | |
|---|---|
CLEAR
LOCAL oItems AS Collection
oItems = NEWOBJECT("Collection")
oItems.Add("Daffodils", "flower2")
oItems.Add("Roses", "flower1", "flower2")
oItems.Add("Daisies", "flower3")
? !EMPTY(oItems.GetKey(1))
? oItems.GetKey(2) | |