Forum guidelines
  • Home
  • »
  • C# Language
  • »
  • NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet
AuthorQuestion
NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet
Posted By afrio ordino on 13 Feb 2011
 Bonjour,
Je développe une application en c# et j'ai depuis quelques temps le message d'erreur suivant: [NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.]
J'ai une classe Element et classe Problem

T comprends 5 objet de type Element
chaque objet a deux propriétés width et height voici les 5 objets
obj1:width= 3 et height= 7
obj2:width= 8 et height= 1
obj3:width= 10 et height= 2
obj4:width= 5 et height= 4
obj5:width= 2 et height= 1
Mon objectif est de trier le tableau T dans l'ordre décroissants en se basant sur width des elements et dans le cas ou on a la meme valeur de width alors le tri sera en se basant sur height


public void sort ( )
{
Problem[] tab = new Problem[100];
tab = files();

Element[] T = new Element[100];
T = tab[0].getElements();

for (int j=1; j<T.Length-1; j++)
{
int x = T[j].getWidth();
int y = T[j].getHeight();
int i = j-1;

while (i >= 0 && ((T[i].getWidth() < x) || ((T[i].getWidth() == x) && (T[i].getHeight() < y))))
{ {
T[i] = T[i+1];


Console.WriteLine("dddd" + T[i].getWidth()+ T[i].getHeight());


i = i-1;
}

T[i + 1].setWidth(x);
T[i + 1].setHeight(y);
Console.WriteLine(" zzz" + T[i + 1].getWidth() + T[i + 1].getHeight());
Console.ReadLine();
}

voici l'affichage
dddd 8 1
zzz 8 1
dddd 10 2
dddd 10 2
zzz 10 2
zzz 5 4
zzz 2 1

Puis l'affichage de l'erreur [NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.]  pour l'instruction :        int x = T[j].getWidth();


AuthorReply
Re: NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet
Posted By Suthish Nair on 13 Feb 2011  
for (int j=1; j<T.Length-1; j++) 
{
  int x = T[j].getWidth();

here j starts with 1, might this creating the problem

Mark as Answer, on the posts reply's that helped you !!!.
Re: NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet
Posted By afrio ordino on 13 Feb 2011  

Thank you
But I don't think that the problem is in the value of j

Re: NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet
Posted By Suthish Nair on 13 Feb 2011  

ok, can you the debug these lines by putting breakpoint.
T = tab[0].getElements(); ==> check what you getting for T

for (int j=1; j<T.Length-1; j++) ==> check the length of T.Length
{
int x = T[j].getWidth(); ==> check what T[1] having

Mark as Answer, on the posts reply's that helped you !!!.
Re: NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet
Posted By afrio ordino on 13 Feb 2011  
I debug this line by putting breakpoint.
T = tab[0].getElements(); ==> I have an Array T with objects= null   !!!!!

for (int j=1; j<T.Length-1; j++) ==> T.Length= 100
{
int x = T[j].getWidth(); ==> T[1] has a good value


Re: NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet
Posted By Suthish Nair on 13 Feb 2011  

wait more reply..

also, check this line also .
i = i-1; 

use try - catch block to trap the error

Mark as Answer, on the posts reply's that helped you !!!.
Re: NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet
Posted By afrio ordino on 13 Feb 2011  

Thank you
I resolve my problem
For the length of the arrray T,   I used the logical size of the array instead of the physic size.
 I created a method that gives the logical size of this array T
I changed this instruction Element[] T =  new Element[100]; to  Element[] T = null;
Thank you for your help

SPONSORED BY

Custom Software Development
MCN is your source for developing solutions involving websites, mobile apps, cloud-computing, databases, BI, back-end services and processes and client-server applications.