копировать и вставлять через кнопки с помощью JavaScript?

Для переменных объекта VB требуется назначить ключевое слово Set. Объектные свойства, которые также являются объектами, также должны быть Set. Ошибка выполнения 91 «объектная переменная не установлена» возникает, когда присвоение не использует это ключевое слово.

Это унаследовано от ключевого слова наследия Let для присвоения значений и Set, чтобы назначить ссылки ; Let в конечном итоге был устаревшим (хотя все еще необходим для определения свойств), а остался Set, оставив синтаксис присваивания значения VB6 / VBA, например [Let] variable = value, где «Let» является необязательным.

In объявление и назначение:

Dim SourceWindow As Window, QACheckWindow As Window
'this is like saying "Let SourceWindow = ActiveWindow":
SourceWindow = ActiveWindow

SourceWindow - объект , назначенный так, как если бы это было значение - следовательно, ошибка.

Эта ошибка также может возникать при доступе к не заданному объекту; эквивалент .net был бы тогда NullReferenceException:

Dim SourceWindow As Window, Dim WindowTitle As String
'"SourceWindow" reference isn't set, the object can't be accessed yet:
WindowTitle = SourceWindow.Caption 

Я собираюсь немного завысить здесь, но устаревший Let оператор не следует путать с предложением Let (в VB.net), которое в синтаксисе запроса LINQ (в VB.net) вычисляет значение и назначает его к новой переменной с запросом (пример из MSDN ):

From p In products 
Let Discount = p.UnitPrice*0.1 '"Discount" is only available within the query!
Where Discount >= 50
Select p.ProductName, p.UnitPrice, Discount

VB.net присваивает значения и , без необходимости указывать Let или Set, потому что в .net это различие является гораздо более тонкой линией, учитывая, как все в конечном итоге происходит от System.Object ... включая System.ValueType. Вот почему ключевое слово Set также устарело в VB.net , а также почему синтаксис VB.net для определения свойств сбросил Let в пользу Set.

0
задан Joseph Nannepaga 22 February 2019 в 12:14
поделиться