Solved

Help with C# classes - Object reference not set to an instance of an object.

Posted on 2009-04-08
5
178 Views
Last Modified: 2012-05-06
Hi all. I have some C# code here that compiles and it reads pretty easily. But although it compiles, it crashes on startup and when I tell it to debug it says "Object reference not set to an instance of an object." at fillParamArray().

Does anyone know how to fix what I'm doing? It seems pretty straightforward...
using System;

using System.Collections.Generic;

using System.Collections.Specialized;

using System.Diagnostics;

using System.IO;

using System.Linq;

using System.Net;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.ServiceModel.Activation;

using System.ServiceModel.Channels;

using System.ServiceModel.Description;

using System.ServiceModel.Dispatcher;

using System.ServiceModel.Web;

using System.Text;

using System.Web;

using System.Xml;
 

public class CParamInfo

{

    public string LabelText;

    public long Value;

}
 

public class getString

{

    static CParamInfo[] globalParams = new CParamInfo[17];
 

    public static string getParameterInfo(int parameterID)

    {

        string LabelText;

        long Value;
 

        /* String that will contain all values separated by | characters */

        string fullValue;
 

        LabelText = globalParams[parameterID].LabelText;

        Value = globalParams[parameterID].Value;
 

        fullValue = "|ok|" + TitleText + "|" + LabelText + "|";
 

        return fullValue;

    }
 

    static void fillParamArray()

    {

        globalParams[0].LabelText = "Title for 0";

        globalParams[0].Value = 45;
 

        globalParams[1].LabelText = "Title for 1";

        globalParams[2].Value = 65;
 

        globalParams[3].LabelText = "Title for 2";

        globalParams[3].Value = 100;

    }
 

    public static void Main()

    {

        /* Fill in the Param Array values */

        fillParamArray();
 

        Console.WriteLine("Top of Screen Printout\n");
 

        // Do other stuff here that calls other functions, not important for this problem
 

    }

}

Open in new window

0
Comment
Question by:ehensens
  • 2
  • 2
5 Comments
 
LVL 6

Expert Comment

by:Chuck Yetter
ID: 24100958
Initialize each CParamInfo object in the array using new.
0
 

Author Comment

by:ehensens
ID: 24100975
Hi Axshun,

Sorry, but can you be a little more specific? I'm not positive what you mean (example?)
0
 
LVL 15

Accepted Solution

by:
spprivate earned 250 total points
ID: 24101029
You have to create
globalParams[0] = new CParamInfo(); before each param to assing value.
 globalParams[0] = new CParamInfo();        

globalParams[0].LabelText = "Title for 0";

        globalParams[0].Value = 45;

 globalParams[1] = new CParamInfo(); 

        globalParams[1].LabelText = "Title for 1";

globalParams[2] = new CParamInfo(); 

        globalParams[2].Value = 65;

 globalParams[3] = new CParamInfo(); 

        globalParams[3].LabelText = "Title for 2";

        globalParams[3].Value = 100;

Open in new window

0
 
LVL 6

Assisted Solution

by:Chuck Yetter
Chuck Yetter earned 250 total points
ID: 24101062
Your array contains null pointers to CParamInfo objects.  You need to initialize each element in the array.
Loop through the array and set each array element to a new object:

for(int i =0; i < arraysize; i++)
{
    globalParams[i] = new CParamInfo();//may need arguments in constructor call
}
0
 

Author Closing Comment

by:ehensens
ID: 31568207
Thank you to you both
0

Featured Post

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

Suggested Solutions

Extention Methods in C# 3.0 by Ivo Stoykov C# 3.0 offers extension methods. They allow extending existing classes without changing the class's source code or relying on inheritance. These are static methods invoked as instance method. This…
Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

759 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now