Это означает, что указанная переменная не указана ни на что. Я мог бы сгенерировать это так:
SqlConnection connection = null;
connection.Open();
Это вызовет ошибку, потому что, пока я объявил переменную «connection
», она не указала ни на что. Когда я пытаюсь вызвать член «Open
», для его устранения нет ссылки, и он будет вызывать ошибку.
Чтобы избежать этой ошибки:
object == null
. Инструмент Resharper JetBrains определит каждое место в вашем коде, которое имеет возможность ошибки нулевой ссылки, позволяя вам ввести нулевую проверку. Эта ошибка является источником ошибок номер один, IMHO.
Обновление: для современных версий Greasemonkey: вы можете перехватить alert()
в большинстве случаев, используя @run-at document-start
. Например, загрузите этот скрипт, а затем посетите тестовую страницу :
// ==UserScript==
// @name Overwrite Alert
// @description Overwrites alert()
// @include http://output.jsbin.com/*
// @grant none
// @run-at document-start
// ==/UserScript==
unsafeWindow.alert=function (str) {
console.log ("Greasemonkey intercepted alert: ", str);
};
Если ваш скрипт требует функций GM_, он должен установить @grant
, отличное от none. В этом случае используйте exportFunction()
так:
// ==UserScript==
// @name Overwrite Alert
// @description Overwrites alert()
// @include http://output.jsbin.com/*
// @grant GM_addStyle
// @run-at document-start
// ==/UserScript==
function myAlert (str) {
console.log ("Greasemonkey intercepted alert: ", str);
}
unsafeWindow.alert = exportFunction (myAlert, unsafeWindow);
unsafeWindow.alert=function() {};
отлично работает в некоторых ситуациях .
Но если это действительно код на странице, вы не сможете остановить это предупреждение с помощью Greasemonkey.
Это связано с тем, что это предупреждение будет срабатывать во время страницы load и перед событием DOMContentLoaded
- когда запускается Greasemonkey.
Загрузите этот сценарий GM:
// ==UserScript==
// @name Overwrite Alert
// @description Overwrites alert()
// @include http://jsbin.com/*
// ==/UserScript==
unsafeWindow.alert=function() {};
Затем посетите: http: // jsbin .com / ajeqe4 / 6 .
Проверяя код ( http://jsbin.com/ajeqe4/6/edit ), вы увидите 3 предупреждения.
Другие факторы могут заблокировать способность GM остановить предупреждение ... Страница загружается слишком быстро или закрывается, возможно.
g12]
Вставьте источник этой страницы, неотредактированный, если это вообще возможно, на pastebin.com. Возможно, что-то еще вы можете сделать. Может быть, заблокировать скрипт через adblock?
В противном случае вам придется написать расширение / дополнение.
Если вы используете Scriptish , то всегда будет работать следующее:
// ==UserScript==
// @id alert-killer-test@erikvold.com
// @name Overwrite Alert
// @description Overwrites alert()
// @include *
// @run-at document-start
// ==/UserScript==
unsafeWindow.alert=function() {};
Вы можете получить здесь скрипт пользователя .