Solved

best way to pass multiple parameters to a method?

Posted on 2008-06-25
13
159 Views
Last Modified: 2013-12-16
I have several classes that refer to textboxes, checkboxes, etc on the main form;  I want to be able to refer to those exact textboxes, etc from within methods in other classs.  The only way I know of doing this is passing those textboxes, etc to the methods in those other classes.

Is there another better way of doing this?
0
Comment
Question by:rmmarsh
  • 8
  • 5
13 Comments
 
LVL 6

Expert Comment

by:RishadanPort
ID: 21869575
Why pass in the entire object? I suggest passing in delegates for the specific method you might need.

I find that if all classes reference all other object classes, it gets very confusing to code... It would be much better if your class only has the a delegate in which you need.
0
 
LVL 6

Expert Comment

by:RishadanPort
ID: 21869583
If you wanted to You could pass them in to the classes constructor, or use a "setReferencedTextBox" Method.
0
 
LVL 6

Expert Comment

by:RishadanPort
ID: 21869592
I find that it is badly object oriented design if you are passing your entire controls everywhere though... What I do is simply pass in delegates that I need.
0
 
LVL 6

Expert Comment

by:RishadanPort
ID: 21869632
Example of using delegates:

public delegate String myDelegateMethod();

public class A{
   TextBox text = new TextBox();

   public A(){
      text.Text = "Test";
   }

   public String getText(){
      return text.Text;
   }
}

public class B{
   myDelegateMethod getText;

   public B(myDelegateMethod getTextMethod){
      getText = getTextMethod;
   }
}


Now in class B, all you need to do is getText(), and it refers to class A's getText method
0
 

Author Comment

by:rmmarsh
ID: 21869651
I don't see how delegates are going to help me... you still have to pass parameters of the objects from the main form...
0
 

Author Comment

by:rmmarsh
ID: 21869662
Also, I am not passing in every object; only a few, maybe 6-10 of the textboxes, and controls that have the information I need to access.

I can do it by passing them as parameters.. I was thinking of something along the line of an array of parameters?
0
Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

 
LVL 6

Expert Comment

by:RishadanPort
ID: 21869667
Why do you need to be passing many objects ?
0
 

Author Comment

by:rmmarsh
ID: 21869679
because the user sets certain switches (checkboxes, radio buttons) that I need to conrol the process... also, some of the information is in textboxes which I need...
0
 
LVL 6

Accepted Solution

by:
RishadanPort earned 500 total points
ID: 21869687
If you wanted to, you could pass them in an ArrayList,

Like:

ArrayList list = new ArrayList();
list.add(panel);
list.add(textBox);
...

and then just pass the list around.

But I don't recommend this approach. Note that if you do this approach, you would need to know in what order to added the controls in
0
 
LVL 6

Expert Comment

by:RishadanPort
ID: 21869701
Why not just Handle all that in 1 class... and then pass that class around?

What I do, is this, in C# all my text boxes.... or what not when I am designing are put in User Controls.
That user control handles everything of the buttons or what not. And then when I need to, I pass that user control around.

That User control has methods to access *what is needed*
0
 

Author Comment

by:rmmarsh
ID: 21869736
I think the ArrayList would be more efficient... some of the objects need to be modified from the other classes, so that would solve that problem...
0
 
LVL 6

Expert Comment

by:RishadanPort
ID: 21869752
I really don't suggest that though... It is not an object oriented approach. I highly suggest wrapping all the controls in a class, and passing that class around, with accesors to those controls. Make that class handle all of those controls.
0
 

Author Comment

by:rmmarsh
ID: 21869764
Thanks for your help... you gave me some good ideas...
0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Suggested Solutions

A basic question.. “What is the Garbage Collector?” The usual answer given back: “Garbage collector is a background thread run by the CLR for freeing up the memory space used by the objects which are no longer used by the program.” I wondered …
The object model of .Net can be overwhelming at times – so overwhelming that quite trivial tasks often take hours of research. In this case, the task at hand was to populate the datagrid from SQL Server database in Visual Studio 2008 Windows applica…
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

708 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

16 Experts available now in Live!

Get 1:1 Help Now