What does «Object reference not set to an instance of an object» mean? [duplicate]
I am receiving this error and I’m not sure what it means?
Object reference not set to an instance of an object.
8 Answers 8
Variables in .NET are either reference types or value types. Value types are primitives such as integers and booleans or structures (and can be identified because they inherit from System.ValueType). Boolean variables, when declared, have a default value:
Reference types, when declared, do not have a default value:
If you try to access a member of a class instance using a null reference then you get a System.NullReferenceException. Which is the same as Object reference not set to an instance of an object.
The following code is a simple way of reproducing this:
This is a very common error and can occur because of all kinds of reasons. The root cause really depends on the specific scenario that you’ve encountered.
If you are using an API or invoking methods that may return null then it’s important to handle this gracefully. The main method above can be modified in such a way that the NullReferenceException should never be seen by a user:
All of the above really just hints of .NET Type Fundamentals, for further information I’d recommend either picking up CLR via C# or reading this MSDN article by the same author — Jeffrey Richter. Also check out, much more complex, example of when you can encounter a NullReferenceException.
Some teams using Resharper make use of JetBrains attributes to annotate code to highlight where nulls are (not) expected.
5+ Fixes For The Object Reference Not Set To An Instance Of An Object Error
In this post, we provide 5+ fixes for the Object Reference Not Set To An Instance Of An Object Error.
An extremely troublesome error that you may experience if you’re using Windows 7 is known as the object reference not set to an instance of an object error.
If ever you open up a program such as the Autodesk Data Management Server and the “object reference not set to an instance of an object” window appears, it most likely means that there’s an inconsistency in the programming. It can be fixed pretty easily if you know what to do. However, you need to know what is the root cause of the error first and work from there.
With that, we’ll discuss the main causes of the object reference not set to an instance of an object error and how to fix it. But first- check out social media and you’ll see a lot of frustrated users who are in the same boat as you:
1. World peace
2. Solve hunger
3. Give better error messages than «Object reference not set to an instance of an object»— Troy Hunt (@troyhunt) September 29, 2016
Anyone out there using win-simple/win-acme for their letsencrypt certs and knows what this error message means when renewing? «System.NullReferenceException: Object reference not set to an instance of an object.» pic.twitter.com/D5weG5jOXu
— Scott Williams (@ip1) March 8, 2018
Object reference not set to an instance of an object is the most worthless error code to give a user
— Superkick Paulty (@paulbensonsucks) September 28, 2017
What Is Object Reference Not Set to an Instance of an Object Error?
Before going to the fixes, you must first know what the error is and what causes it. Now just to give you an idea, this error is usually only shown to programmers. Non-programmers don’t usually see this error since it is usually programming related. However, non-programmers may also see them if ever there are programs used with unreferenced objects.
The main issue with this error lies in the main software trying to tell you that there is an object that it is trying to reference. However, the object can’t seem to be referenced by the software because the object doesn’t seem to exist. This could be because of certain corrupt data that has been erased. Another cause for an object not to be referenced would be a change in the settings that you weren’t aware of.
In any case, the very nature of this error is actually quite broad which means that you can’t really pinpoint the cause until you really diagnosed the software. But the general cause would be an unreferenced object.
To fix the error, we have provided several methods on how to go about it. All of these fixes are based on common, specific situations that may happen to you. Let’s check out a few of them.
A Popular Video Fix
How to Fix the Object Reference Not Set to an Instance of an Object
1st Fix
Let’s say that you have an XML project that made the error. If that is the case, then you need to fix some of the characters in the coding. Here’s what Microsoft Support suggests that you do:
- Open the project that has the inherited user control
- Look for the characters “&” and “#”
- Take out these characters and use valid XML attribute characters
2nd Fix
This fix can be used if you’re using a GPMC to connect to a Windows 7 Server and use a GPO for auditing settings only to come up with the object reference not set to an instance of an object error. If this is the situation, then Microsoft Support suggests that these are the steps to take:
- Download a supported hotfix from the Microsoft website
- Open up the GPO settings
- Apply the hotfix on the GPMC
3rd Fix
This next fix is applicable to when you are using Autodesk Vault Products. The first thing that you have to do is try to make a diagnosis from where the error is specifically. Once you make your diagnosis, it’ll be easy to make a fix. Here’s what Autodesk Support suggests that you do:
- Make sure that the applications are all downloaded in a supported computer.
- Make sure to install all the latest updates for all Vault applications.
- Scan your computer to make sure that a virus isn’t the cause of the error.
4th Fix
If you think that the error is happening in the Autodesk Data Management Server (ADMS) Console, then you need to first do a diagnosis and then do a short fix. Autodesk Support also suggests some fixes that can be done:
- Check if all the vault servers are running properly and are properly configured
- Set the SQL Security settings on the database properly by ensuring that the databases are detached from the AUTODESKVAULT SQL using the ADMS Console
- Search for CMD in your computer, right click on it, and Run as Administrator then use the code:
C:WindowsMicrosoft.NETFramework64v4.0.30319aspnet_regiis.exe -i -enable
If you follow all these diagnosis methods and fixes, you should be able to solve the error without much trouble.
5th Fix
If ever the error is happening only with certain CAD data files, then you need to open up the Inventor and try to check the links. Autodesk Support also has some ways on how to fix these kinds of situations:
- Boot up the file that’s located in the Inventor.
- Click on the Tools tab and then click on the Links option.
- Click on the specific linked file and click on the Break Link option.
- Scan the Autoloader again.
Forum Feedback
To find out more about the object reference is not set to an instance of an object we looked through different forums and message boards. In general, people were interested in object reference is not set to an instance of an object #C, object reference is not set to an instance of an object Unity/Trados/ #C array, and object reference is not set to an instance of an object connection string.
A novice to programming said that he kept getting the same mistake that an object reference not set to an instance of an object. He didn’t know how to fix it, so he reached out to the community.
They explained that he had run into a case of NullReferenceException. In simple words, he was trying to use something that was null and didn’t exist.
Another poster explained that if you get the object reference not set to an instance of an object you might have forgotten to assign a value to your variables. As a result, your code wouldn’t execute because the variable wasn’t initialized. The solution would be to debug and check which line would throw the exception. Then you should change your variables so that they don’t point to something that doesn’t exist.
A computer expert observes that the object reference not set to an instance of an object error almost always means that the user is trying to use a reference that hasn’t been initialized. He advises that you should follow the general rules of debugging when you’re using Visual Studio. In other words, you should inspect your variables by hovering with the mouse over the names or use debugging panels. The other thing you can do to avoid object reference errors is to place breakpoints so that you can check the values of your variables easily.
If I could go the rest of my life without seeing another NullReferenceException/NullPointerException «Object reference not set to an instance of an object» error… I’d be really really happy.
— Eaglebutt (@colinstu) March 7, 2019
Another forum member states that you can avoid the object reference not set to an instance of an object by explicitly checking for null and providing a default value to return when the object can’t be found. He also advised that you work with Debug.Assert when you use values that should never return null so that you can catch the issues immediately.
A person says that when you encounter “Object reference not set to an instance of an object,” it doesn’t necessarily mean that you haven’t initialized an object.
- He explains that it’s possible that you have declared and initialized the object, but something in your code has invalidated the object.
- Another possible explanation would be that something in the code should have initialized an object, but it didn’t.
- However, he adds that you can find the culprit easily by hovering over the valuables because Visual Studio gives you their values.
- You just have to look for the one labeled “Nothing” and take care of that value.
@nodexl @marc_smith I am getting an error on startup for NodeXL Pro. After the initial pop-up it says «Object reference not set to an instance of this object.» I have removed the old license file and put in a new one as recommend on the webpage, but nothing changes.
— Nick Watanabe (@watanabe2k) October 8, 2018
Another user commented that to debug object reference not set to an instance of an object you can use Debug -> Windows -> Locals. It allows you to examine your objects and find the ones that are throwing the exception. He also mentions that you should use “New” to initiate an instance when you’re declaring one. The poster explains that a lot of the object reference error he sees are due to the lack of “New” operator.
An individual also points out that you might get that mistake if you’re working with arrays and you haven’t instantiated them. He says that declaring an array doesn’t create it so that you have to initialize it afterward. The user clarifies that lists and collections also must be created or instantiated or you’ll get an object reference error. He advises that you pay special attention to classes, which use a collection “Type” because that’s very common oversight.
A forum user also remarks that another way to get the object reference not set to an instance of an object is if you have assigned a value to a null object. He recommends that you always check if an object that could be null is null. The person also says that you might have made a function in your code that had set the variable of the object to null and that you have to check the lines where the error has been thrown.
A person also remarks that incorrect use of the “as” might also result in NullReferenceException. The user comments that such errors are easy to fix in Visual Studio thanks to the Visual Studio Debugger and recommends that you read how to use it.
Summing Up
Those are some of the most common situations in which you might encounter the object reference not set to an instance of an object error. In the event that you experience any of the situations that we have mentioned above, you may use some of the fixes and diagnosis tips provided per fix. These fixes are suggested by both support teams of Microsoft and Autodesk, so they are proven to work.
If the problem still continues to persist no matter what fix you try to do, then the best thing to do would be to call in an expert to help you. As mentioned above, this type of error is an extremely broad and generic error which is caused by the individual application that you’re using. The root cause would really depend on what happened inside that application.
So the best way would be to contact the support service behind the application and ask them for assistance. They will be the best people to help you with the problem in the event that a DIY diagnosis and a DIY fix can’t seem to work.
Ryan is a computer enthusiast who has a knack for fixing difficult and technical software problems. Whether you’re having issues with Windows, Safari, Chrome or even an HP printer, Ryan helps out by figuring out easy solutions to common error codes.
Что означает «Объектная ссылка, не установленная на экземпляр объекта»?
Ссылка на объект не установлена в экземпляр объекта.
ОТВЕТЫ
Ответ 1
Переменные в .NET являются либо ссылочными типами, либо типами значений. Типы значений — это примитивы, такие как целые числа и booleans или структуры ( и их можно идентифицировать, поскольку они наследуют от System.ValueType). Логические переменные, объявленные, имеют значение по умолчанию:
Типы ссылок, если они объявлены, не имеют значения по умолчанию:
Если вы попытаетесь получить доступ к члену экземпляра класса с использованием нулевой ссылки, вы получите System.NullReferenceException. Это то же самое, что и ссылка объекта, не установленная на экземпляр объекта.
Следующий код является простым способом воспроизведения этого:
Это очень распространенная ошибка и может возникнуть из-за всех причин. Основная причина действительно зависит от конкретного сценария, с которым вы столкнулись.
Если вы используете API или вызываете методы, которые могут возвращать null, тогда важно обработать это изящно. Основной метод, описанный выше, может быть изменен таким образом, что исключение NullReferenceException никогда не будет видно пользователю:
Все вышесказанное на самом деле просто подсказывает основы .NET Type. Для получения дополнительной информации я бы рекомендовал либо собрать CLR через С#, либо прочитать это статья MSDN того же автора — Джеффри Рихтера. Также проверьте, намного сложнее пример, когда вы можете встретить исключение NullReferenceException.
Некоторые команды, использующие Resharper, используют атрибуты JetBrains для комментирования кода, чтобы выделить, где ожидаются (не) нули.
Ответ 2
Еще один простой способ получить это:
Ответ 3
Не быть тупым, но это означает именно то, что он говорит. Одна из ваших ссылок на объекты — NULL. Вы увидите это при попытке доступа к свойству или методу объекта NULL’d.
Ответ 4
В двух словах это означает, что вы пытаетесь получить доступ к объекту, не создавая его. Возможно, вам нужно будет использовать ключевое слово «new», чтобы создать его экземпляр вначале. Создайте его экземпляр.
Вам нужно будет использовать:
Надеюсь, я дал понять.
Ответ 5
Это означает, что вы сделали что-то вроде этого.
И без делать
if(myObject!=null) , вы продолжаете делать myObject.Method();
Ответ 6
что означает эта ошибка? Ссылка на объект не установлена в экземпляр объекта.
точно, что он говорит, вы пытаетесь использовать нулевой объект, как если бы он был правильно ссылочный объект.
Ответ 7
В большинстве случаев, когда вы пытаетесь определить значение в объекте, а если значение равно null, возникает такое исключение. Пожалуйста, проверьте эту ссылку.
для самообучения вы можете поместить некоторые условия проверки. как
Ответ 8
Я столкнулся с проблемой, пока я пытался работать с приложением Smartcard, у нее есть один компонент COM, который скомпилирован с помощью платформы dot net 2.0 нашими старшими разработчиками, когда я пытался использовать эти компоненты DLL с моим проектом, который был разработан в рамках 4.0. Когда VS 2010 конвертирует это приложение vs2008 в vs2010, я получил ссылку «Ссылка на объект», не установленную в экземпляр объекта.. Когда я попытался отслеживать, я обнаружил, что ошибка находится на нескольких формах, которые используя эту ссылочную dll (которая скомпилирована с фреймворком 2.0).
Я открыл файл resx этих форм и изменил строку ниже
Итак, что я изменил здесь, я просто изменил его версию 4.0.0.0 на 2.0.0.0, и он отлично работает.
Я думаю, что это понижающий, но не весь проект, только несколько форм находятся под фреймворком 2.0, и это вообще не повлияет на проект.
Ответ 9
Если у меня есть класс:
а затем выполните:
Вторая строка вызывает это исключение, потому что я вызываю метод на ссылочном типе, который null (т.е. созданный путем вызова myClass = new MyClass() )
VolKra 5 / 5 / 1 Регистрация: 25.07.2014 Сообщений: 223 |
||||
1 |
||||
11.04.2016, 12:38. Показов 100037. Ответов 11 Метки нет (Все метки)
NullReferenceException: Object reference not set to an instance of an object
__________________
0 |
751 / 599 / 203 Регистрация: 06.08.2015 Сообщений: 2,432 |
|
11.04.2016, 13:10 |
2 |
РешениеVolKra, эта ошибка указывает, что ссылка на объект не существует. Запомните уже
0 |
5 / 5 / 1 Регистрация: 25.07.2014 Сообщений: 223 |
|
11.04.2016, 13:38 [ТС] |
3 |
Cr0c, Тег у префаба верний в том то и дело. Префаб создается каждою секунду. Что делать. Добавлено через 6 минут
0 |
751 / 599 / 203 Регистрация: 06.08.2015 Сообщений: 2,432 |
|
11.04.2016, 14:54 |
4 |
VolKra, новый скрипт не видно, а телепаты в отпуске.
0 |
5 / 5 / 1 Регистрация: 25.07.2014 Сообщений: 223 |
|
11.04.2016, 15:40 [ТС] |
5 |
Cr0c, Ошибка в том же скрипте
0 |
751 / 599 / 203 Регистрация: 06.08.2015 Сообщений: 2,432 |
|
11.04.2016, 15:58 |
6 |
VolKra, а строка 26 не входит в апдейт. Между строк ошибка, что ли? Ищите переменную target, она не задана, так в ошибке указано. Возможно потому, что в момент запуска скрипта нет врага, которого можно найти. Обновляйте target в апдейте, если он null.
0 |
5 / 5 / 1 Регистрация: 25.07.2014 Сообщений: 223 |
|
11.04.2016, 18:02 [ТС] |
7 |
Cr0c, Все исправил, толька когда видет врага пуля не стреляет в нево, префаб задал всьо задал ошибки нет пуля не стреляет что делать? Ето код)
0 |
751 / 599 / 203 Регистрация: 06.08.2015 Сообщений: 2,432 |
|
11.04.2016, 18:26 |
8 |
VolKra, а кто двигает пулю?
0 |
5 / 5 / 1 Регистрация: 25.07.2014 Сообщений: 223 |
|
11.04.2016, 23:58 [ТС] |
9 |
Cr0c, По сути пуля должна створится и двигатся к ближайшему врагу с тегом Enemy. Как ето сделать) Помоги плиз)
0 |
Cr0c 751 / 599 / 203 Регистрация: 06.08.2015 Сообщений: 2,432 |
||||||||
12.04.2016, 07:47 |
10 |
|||||||
VolKra, при инстанцировании поворачивайте пулю, в скрипте пули делайте сдвиг в апдейте
Но это неправильно: так как пуля будет попадать в коллайдер, то вешать на пулю ригидбоди и после поворота пули задавать её скорость через
и она будет лететь до коллизии, которую обрабатывать в самой пуле.
0 |
5 / 5 / 1 Регистрация: 25.07.2014 Сообщений: 223 |
|
12.04.2016, 11:13 [ТС] |
11 |
Cr0c, Пуля не летит за юнитами. И она летит толька вверх.
0 |
Cr0c 751 / 599 / 203 Регистрация: 06.08.2015 Сообщений: 2,432 |
||||
12.04.2016, 15:57 |
12 |
|||
Решение
И на пуле должен быть Rigidbody с отключенной гравитацией, коллайдер с isTrigger и скриптом, в котором есть OnTriggerEnter Добавлено через 3 часа 6 минут
1 |
Table Of Contents
- What Is Object Reference Not Set to an Instance of an Object Error?
- A Popular Video Fix
- How to Fix the Object Reference Not Set to an Instance of an Object
- 1st Fix
- 2nd Fix
- 3rd Fix
- 4th Fix
- 5th Fix
- Forum Feedback
- Summing Up
- Related Posts:
In this post, we provide 5+ fixes for the Object Reference Not Set To An Instance Of An Object Error.
An extremely troublesome error that you may experience if you’re using Windows 7 is known as the object reference not set to an instance of an object error.
If ever you open up a program such as the Autodesk Data Management Server and the “object reference not set to an instance of an object” window appears, it most likely means that there’s an inconsistency in the programming. It can be fixed pretty easily if you know what to do. However, you need to know what is the root cause of the error first and work from there.
With that, we’ll discuss the main causes of the object reference not set to an instance of an object error and how to fix it. But first- check out social media and you’ll see a lot of frustrated users who are in the same boat as you:
1. World peace
2. Solve hunger
3. Give better error messages than «Object reference not set to an instance of an object»— Troy Hunt (@troyhunt) September 29, 2016
Anyone out there using win-simple/win-acme for their letsencrypt certs and knows what this error message means when renewing? «System.NullReferenceException: Object reference not set to an instance of an object.» pic.twitter.com/D5weG5jOXu
— Scott Williams (@ip1) March 8, 2018
Object reference not set to an instance of an object is the most worthless error code to give a user
— Superkick Paulty (@paulbensonsucks) September 28, 2017
Before going to the fixes, you must first know what the error is and what causes it. Now just to give you an idea, this error is usually only shown to programmers. Non-programmers don’t usually see this error since it is usually programming related. However, non-programmers may also see them if ever there are programs used with unreferenced objects.
The main issue with this error lies in the main software trying to tell you that there is an object that it is trying to reference. However, the object can’t seem to be referenced by the software because the object doesn’t seem to exist. This could be because of certain corrupt data that has been erased. Another cause for an object not to be referenced would be a change in the settings that you weren’t aware of.
In any case, the very nature of this error is actually quite broad which means that you can’t really pinpoint the cause until you really diagnosed the software. But the general cause would be an unreferenced object.
To fix the error, we have provided several methods on how to go about it. All of these fixes are based on common, specific situations that may happen to you. Let’s check out a few of them.
A Popular Video Fix
How to Fix the Object Reference Not Set to an Instance of an Object
1st Fix
Let’s say that you have an XML project that made the error. If that is the case, then you need to fix some of the characters in the coding. Here’s what Microsoft Support suggests that you do:
- Open the project that has the inherited user control
- Look for the characters “&” and “#”
- Take out these characters and use valid XML attribute characters
2nd Fix
This fix can be used if you’re using a GPMC to connect to a Windows 7 Server and use a GPO for auditing settings only to come up with the object reference not set to an instance of an object error. If this is the situation, then Microsoft Support suggests that these are the steps to take:
- Download a supported hotfix from the Microsoft website
- Open up the GPO settings
- Apply the hotfix on the GPMC
3rd Fix
This next fix is applicable to when you are using Autodesk Vault Products. The first thing that you have to do is try to make a diagnosis from where the error is specifically. Once you make your diagnosis, it’ll be easy to make a fix. Here’s what Autodesk Support suggests that you do:
- Make sure that the applications are all downloaded in a supported computer.
- Make sure to install all the latest updates for all Vault applications.
- Scan your computer to make sure that a virus isn’t the cause of the error.
4th Fix
If you think that the error is happening in the Autodesk Data Management Server (ADMS) Console, then you need to first do a diagnosis and then do a short fix. Autodesk Support also suggests some fixes that can be done:
- Check if all the vault servers are running properly and are properly configured
- Set the SQL Security settings on the database properly by ensuring that the databases are detached from the AUTODESKVAULT SQL using the ADMS Console
- Search for CMD in your computer, right click on it, and Run as Administrator then use the code:
C:WindowsMicrosoft.NETFramework64v4.0.30319aspnet_regiis.exe -i -enable
If you follow all these diagnosis methods and fixes, you should be able to solve the error without much trouble.
5th Fix
If ever the error is happening only with certain CAD data files, then you need to open up the Inventor and try to check the links. Autodesk Support also has some ways on how to fix these kinds of situations:
- Boot up the file that’s located in the Inventor.
- Click on the Tools tab and then click on the Links option.
- Click on the specific linked file and click on the Break Link option.
- Scan the Autoloader again.
Forum Feedback
To find out more about the object reference is not set to an instance of an object we looked through different forums and message boards. In general, people were interested in object reference is not set to an instance of an object #C, object reference is not set to an instance of an object Unity/Trados/ #C array, and object reference is not set to an instance of an object connection string.
A novice to programming said that he kept getting the same mistake that an object reference not set to an instance of an object. He didn’t know how to fix it, so he reached out to the community.
They explained that he had run into a case of NullReferenceException. In simple words, he was trying to use something that was null and didn’t exist.
Another poster explained that if you get the object reference not set to an instance of an object you might have forgotten to assign a value to your variables. As a result, your code wouldn’t execute because the variable wasn’t initialized. The solution would be to debug and check which line would throw the exception. Then you should change your variables so that they don’t point to something that doesn’t exist.
A computer expert observes that the object reference not set to an instance of an object error almost always means that the user is trying to use a reference that hasn’t been initialized. He advises that you should follow the general rules of debugging when you’re using Visual Studio. In other words, you should inspect your variables by hovering with the mouse over the names or use debugging panels. The other thing you can do to avoid object reference errors is to place breakpoints so that you can check the values of your variables easily.
If I could go the rest of my life without seeing another NullReferenceException/NullPointerException «Object reference not set to an instance of an object» error… I’d be really really happy.
— Eaglebutt (@colinstu) March 7, 2019
Another forum member states that you can avoid the object reference not set to an instance of an object by explicitly checking for null and providing a default value to return when the object can’t be found. He also advised that you work with Debug.Assert when you use values that should never return null so that you can catch the issues immediately.
A person says that when you encounter “Object reference not set to an instance of an object,” it doesn’t necessarily mean that you haven’t initialized an object.
- He explains that it’s possible that you have declared and initialized the object, but something in your code has invalidated the object.
- Another possible explanation would be that something in the code should have initialized an object, but it didn’t.
- However, he adds that you can find the culprit easily by hovering over the valuables because Visual Studio gives you their values.
- You just have to look for the one labeled “Nothing” and take care of that value.
@nodexl @marc_smith I am getting an error on startup for NodeXL Pro. After the initial pop-up it says «Object reference not set to an instance of this object.» I have removed the old license file and put in a new one as recommend on the webpage, but nothing changes.
— Nick Watanabe (@watanabe2k) October 8, 2018
Another user commented that to debug object reference not set to an instance of an object you can use Debug -> Windows -> Locals. It allows you to examine your objects and find the ones that are throwing the exception. He also mentions that you should use “New” to initiate an instance when you’re declaring one. The poster explains that a lot of the object reference error he sees are due to the lack of “New” operator.
An individual also points out that you might get that mistake if you’re working with arrays and you haven’t instantiated them. He says that declaring an array doesn’t create it so that you have to initialize it afterward. The user clarifies that lists and collections also must be created or instantiated or you’ll get an object reference error. He advises that you pay special attention to classes, which use a collection “Type” because that’s very common oversight.
A forum user also remarks that another way to get the object reference not set to an instance of an object is if you have assigned a value to a null object. He recommends that you always check if an object that could be null is null. The person also says that you might have made a function in your code that had set the variable of the object to null and that you have to check the lines where the error has been thrown.
A person also remarks that incorrect use of the “as” might also result in NullReferenceException. The user comments that such errors are easy to fix in Visual Studio thanks to the Visual Studio Debugger and recommends that you read how to use it.
Summing Up
Those are some of the most common situations in which you might encounter the object reference not set to an instance of an object error. In the event that you experience any of the situations that we have mentioned above, you may use some of the fixes and diagnosis tips provided per fix. These fixes are suggested by both support teams of Microsoft and Autodesk, so they are proven to work.
If the problem still continues to persist no matter what fix you try to do, then the best thing to do would be to call in an expert to help you. As mentioned above, this type of error is an extremely broad and generic error which is caused by the individual application that you’re using. The root cause would really depend on what happened inside that application.
So the best way would be to contact the support service behind the application and ask them for assistance. They will be the best people to help you with the problem in the event that a DIY diagnosis and a DIY fix can’t seem to work.
Ryan is a computer enthusiast who has a knack for fixing difficult and technical software problems. Whether you’re having issues with Windows, Safari, Chrome or even an HP printer, Ryan helps out by figuring out easy solutions to common error codes.
Я получаю эту ошибку, и я не уверен, что это значит?
Ссылка на объект не установлена в экземпляр объекта.
Ответ 1
Переменные в .NET являются либо ссылочными типами, либо типами значений. Типы значений — это примитивы, такие как целые числа и booleans или структуры ( и их можно идентифицировать, поскольку они наследуют от System.ValueType). Логические переменные, объявленные, имеют значение по умолчанию:
bool mybool;
//mybool == false
Типы ссылок, если они объявлены, не имеют значения по умолчанию:
class ExampleClass
{
}
ExampleClass exampleClass; //== null
Если вы попытаетесь получить доступ к члену экземпляра класса с использованием нулевой ссылки, вы получите System.NullReferenceException. Это то же самое, что и ссылка объекта, не установленная на экземпляр объекта.
Следующий код является простым способом воспроизведения этого:
static void Main(string[] args)
{
var exampleClass = new ExampleClass();
var returnedClass = exampleClass.ExampleMethod();
returnedClass.AnotherExampleMethod(); //NullReferenceException here.
}
class ExampleClass
{
public ReturnedClass ExampleMethod()
{
return null;
}
}
class ReturnedClass
{
public void AnotherExampleMethod()
{
}
}
Это очень распространенная ошибка и может возникнуть из-за всех причин. Основная причина действительно зависит от конкретного сценария, с которым вы столкнулись.
Если вы используете API или вызываете методы, которые могут возвращать null, тогда важно обработать это изящно. Основной метод, описанный выше, может быть изменен таким образом, что исключение NullReferenceException никогда не будет видно пользователю:
static void Main(string[] args)
{
var exampleClass = new ExampleClass();
var returnedClass = exampleClass.ExampleMethod();
if (returnedClass == null)
{
//throw a meaningful exception or give some useful feedback to the user!
return;
}
returnedClass.AnotherExampleMethod();
}
Все вышесказанное на самом деле просто подсказывает основы .NET Type. Для получения дополнительной информации я бы рекомендовал либо собрать CLR через С#, либо прочитать это статья MSDN того же автора — Джеффри Рихтера. Также проверьте, намного сложнее пример, когда вы можете встретить исключение NullReferenceException.
Некоторые команды, использующие Resharper, используют атрибуты JetBrains для комментирования кода, чтобы выделить, где ожидаются (не) нули.
Ответ 2
Еще один простой способ получить это:
Person myPet = GetPersonFromDatabase();
// check for myPet == null... AND for myPet.PetType == null
if ( myPet.PetType == "cat" ) <--- fall down go boom!
Ответ 3
Не быть тупым, но это означает именно то, что он говорит. Одна из ваших ссылок на объекты — NULL. Вы увидите это при попытке доступа к свойству или методу объекта NULL’d.
Ответ 4
В двух словах это означает, что вы пытаетесь получить доступ к объекту, не создавая его. Возможно, вам нужно будет использовать ключевое слово «new», чтобы создать его экземпляр вначале. Создайте его экземпляр.
Например,
public class MyClass
{
public int Id {get; set;}
}
MyClass myClass;
myClass.Id = 0; <----------- An error will be thrown here.. because myClass is null here...
Вам нужно будет использовать:
myClass = new MyClass();
myClass.Id = 0;
Надеюсь, я дал понять.
Ответ 5
Это означает, что вы сделали что-то вроде этого.
Class myObject = GetObjectFromFunction();
И без делать
if(myObject!=null)
, вы продолжаете делать myObject.Method();
Ответ 6
что означает эта ошибка? Ссылка на объект не установлена в экземпляр объекта.
точно, что он говорит, вы пытаетесь использовать нулевой объект, как если бы он был правильно
ссылочный объект.
Ответ 7
В большинстве случаев, когда вы пытаетесь определить значение в объекте, а если значение равно null, возникает такое исключение.
Пожалуйста, проверьте эту ссылку.
для самообучения вы можете поместить некоторые условия проверки. как
if (myObj== null)
Console.Write("myObj is NULL");
Ответ 8
Я столкнулся с проблемой, пока я пытался работать с приложением Smartcard, у нее есть один компонент COM, который скомпилирован с помощью платформы dot net 2.0 нашими старшими разработчиками, когда я пытался использовать эти компоненты DLL с моим проектом, который был разработан в рамках 4.0. Когда VS 2010 конвертирует это приложение vs2008 в vs2010, я получил ссылку «Ссылка на объект», не установленную в экземпляр объекта.. Когда я попытался отслеживать, я обнаружил, что ошибка находится на нескольких формах, которые используя эту ссылочную dll (которая скомпилирована с фреймворком 2.0).
Я открыл файл resx этих форм и изменил строку ниже
<metadata name="ErrorProvider1.TrayLocation" type="System.Drawing.Point, System.Drawing, **Version=4.0.0.0**, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
Для
<metadata name="ErrorProvider1.TrayLocation" type="System.Drawing.Point, System.Drawing, **Version=2.0.0.0**, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
Итак, что я изменил здесь, я просто изменил его версию 4.0.0.0 на 2.0.0.0, и он отлично работает.
Я думаю, что это понижающий, но не весь проект, только несколько форм находятся под фреймворком 2.0, и это вообще не повлияет на проект.
Ответ 9
Если у меня есть класс:
public class MyClass
{
public void MyMethod()
{
}
}
а затем выполните:
MyClass myClass = null;
myClass.MyMethod();
Вторая строка вызывает это исключение, потому что я вызываю метод на ссылочном типе, который null
(т.е. созданный путем вызова myClass = new MyClass()
)
Variables in .NET are either reference types or value types. Value types are primitives such as integers and booleans or structures (and can be identified because they inherit from System.ValueType). Boolean variables, when declared, have a default value:
bool mybool;
//mybool == false
Reference types, when declared, do not have a default value:
class ExampleClass
{
}
ExampleClass exampleClass; //== null
If you try to access a member of a class instance using a null reference then you get a System.NullReferenceException. Which is the same as Object reference not set to an instance of an object.
The following code is a simple way of reproducing this:
static void Main(string[] args)
{
var exampleClass = new ExampleClass();
var returnedClass = exampleClass.ExampleMethod();
returnedClass.AnotherExampleMethod(); //NullReferenceException here.
}
class ExampleClass
{
public ReturnedClass ExampleMethod()
{
return null;
}
}
class ReturnedClass
{
public void AnotherExampleMethod()
{
}
}
This is a very common error and can occur because of all kinds of reasons. The root cause really depends on the specific scenario that you’ve encountered.
If you are using an API or invoking methods that may return null then it’s important to handle this gracefully. The main method above can be modified in such a way that the NullReferenceException should never be seen by a user:
static void Main(string[] args)
{
var exampleClass = new ExampleClass();
var returnedClass = exampleClass.ExampleMethod();
if (returnedClass == null)
{
//throw a meaningful exception or give some useful feedback to the user!
return;
}
returnedClass.AnotherExampleMethod();
}
All of the above really just hints of .NET Type Fundamentals, for further information I’d recommend either picking up CLR via C# or reading this MSDN article by the same author — Jeffrey Richter. Also check out, much more complex, example of when you can encounter a NullReferenceException.
Some teams using Resharper make use of JetBrains attributes to annotate code to highlight where nulls are (not) expected.
Variables in .NET are either reference types or value types. Value types are primitives such as integers and booleans or structures (and can be identified because they inherit from System.ValueType). Boolean variables, when declared, have a default value:
bool mybool;
//mybool == false
Reference types, when declared, do not have a default value:
class ExampleClass
{
}
ExampleClass exampleClass; //== null
If you try to access a member of a class instance using a null reference then you get a System.NullReferenceException. Which is the same as Object reference not set to an instance of an object.
The following code is a simple way of reproducing this:
static void Main(string[] args)
{
var exampleClass = new ExampleClass();
var returnedClass = exampleClass.ExampleMethod();
returnedClass.AnotherExampleMethod(); //NullReferenceException here.
}
class ExampleClass
{
public ReturnedClass ExampleMethod()
{
return null;
}
}
class ReturnedClass
{
public void AnotherExampleMethod()
{
}
}
This is a very common error and can occur because of all kinds of reasons. The root cause really depends on the specific scenario that you’ve encountered.
If you are using an API or invoking methods that may return null then it’s important to handle this gracefully. The main method above can be modified in such a way that the NullReferenceException should never be seen by a user:
static void Main(string[] args)
{
var exampleClass = new ExampleClass();
var returnedClass = exampleClass.ExampleMethod();
if (returnedClass == null)
{
//throw a meaningful exception or give some useful feedback to the user!
return;
}
returnedClass.AnotherExampleMethod();
}
All of the above really just hints of .NET Type Fundamentals, for further information I’d recommend either picking up CLR via C# or reading this MSDN article by the same author — Jeffrey Richter. Also check out, much more complex, example of when you can encounter a NullReferenceException.
Some teams using Resharper make use of JetBrains attributes to annotate code to highlight where nulls are (not) expected.