GetType не определен? - PullRequest
       1

GetType не определен?

0 голосов
/ 10 октября 2011

Я разрабатываю программу vb.net с VS2008.В моем случае dt_list является членом экземпляра в виде List (of Single).Когда я писал

dt_list = CType(ser2.Deserialize(r), dt_list.GetType())

VS2008 жалуется на "Тип 'dt_list.GetType ()' не определен".

Почему?Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 10 октября 2011

Причина, по которой это недопустимо, заключается в том, что точное значение типа для GetType() должно быть определено во время выполнения. Второй параметр CType может быть только «выражением, которое допустимо в предложении As в выражении Dim, то есть имени любого типа данных, объекта, структуры, класса или интерфейса», для экземпляр, List(Of String), который можно определить во время компиляции.

Соответственно законно следующее:

dt_list = CType(ser2.Deserialize(r), List(Of Single))

EDIT:

Однако, приведение к произвольному типу, когда тип не известен во время компиляции, является более сложным. Предлагаемый ответ на этот вопрос на форумах MSDN показывает один подход. Хотя это в C #, я предполагаю, что такой же подход можно использовать и в VB.NET.

0 голосов
/ 10 октября 2011

Чего вы хотите добиться, выбрав тип приведения во время выполнения?

Возможно, вам удастся решить вашу проблему с помощью интерфейса.

Dim dt_list As IList = Ctype(ser2.Deserialize(r), IList)

Это дает вам доступ ко всем членам списка в IList .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...