• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 172
  • Last Modified:

best way to pass multiple parameters to a method?

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
rmmarsh
Asked:
rmmarsh
  • 8
  • 5
1 Solution
 
RishadanPortCommented:
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
 
RishadanPortCommented:
If you wanted to You could pass them in to the classes constructor, or use a "setReferencedTextBox" Method.
0
 
RishadanPortCommented:
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
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
RishadanPortCommented:
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
 
rmmarshAuthor Commented:
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
 
rmmarshAuthor Commented:
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
 
RishadanPortCommented:
Why do you need to be passing many objects ?
0
 
rmmarshAuthor Commented:
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
 
RishadanPortCommented:
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
 
RishadanPortCommented:
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
 
rmmarshAuthor Commented:
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
 
RishadanPortCommented:
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
 
rmmarshAuthor Commented:
Thanks for your help... you gave me some good ideas...
0

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 8
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now