I am receiving this error and I'm not sure what it means?
Object reference not set to an instance of an object.
I am receiving this error and I'm not sure what it means?
Object reference not set to an instance of an object.
Not to be blunt but it means exactly what it says. One of your object references is NULL. You'll see this when you try and access the property or method of a NULL'd object.
It means you did something like this.
Class myObject = GetObjectFromFunction();
And without doing
if(myObject!=null), you go ahead do myObject.Method();
what does this error mean? Object reference not set to an instance of an object.
exactly what it says, you are trying to use a null object as if it was a properly referenced object.
dkpatt is right, but also, that is the message associated with a NullReferenceException
for a more detailed explanation, see @Iain's response as to common sources of the NullReferenceException
Here is a thread explaining the common causes of the "Object reference not set to an instance of an object" error.
Most of the time, when you try to assing value into object, and if the value is null, then this kind of exception occur. Please check this link.
for the sake of self learning, you can put some check condition. like
if (myObj== null)
Console.Write("myObj is NULL");
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 at .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 this, much more complex, example of when you can encounter a NullReferenceException.
Another easy way to get this:
Person x = GetPersonFromDatabase();
// check for x == null... AND for Person.Pet == null
if ( Person.Pet == "cat" ) <--- fall down go boom!