Поделиться через


Выражение имеет тип <имяТипа> который является ограниченным и не может использоваться для доступа к членам, унаследованным от Object или ValueType

Обновлен: Ноябрь 2007

Expression has the type '<typename>' which is a restricted type and cannot be used to access members inherited from 'Object' or 'ValueType'

Выражение имеет тип, который не может быть упакован средой CLR, но обращается к члену, для которого требуется упаковка.

Термин упаковка обозначает обработку, необходимую для преобразования типа к Object или, в некоторых случаях, к ValueType. Среда CLR не поддерживает упаковку определенных типов структуры, например ArgIterator, RuntimeArgumentHandle и TypedReference.

Это выражение пытается использовать ограниченный тип, чтобы вызвать метод, унаследованный от Object или ValueType, например GetHashCode или ToString. Чтобы получить доступ к этому методу, в Visual Basic выполняется неявное преобразование упаковки, которое вызывает эту ошибку.

Идентификатор ошибки: BC31393

Чтобы исправить эту ошибку

  1. Найдите выражение, вычисляющее указанный тип.

  2. Найдите часть оператора, в которой вызывается метод, унаследованный от Object или ValueType.

  3. Перепишите оператор, чтобы избежать вызова метода.

См. также

Основные понятия

Явные и неявные преобразования