Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

best way to pass multiple parameters to a method?

Posted on 2008-06-25
13
Medium Priority
?
168 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Visualize your virtual and backup environments

Create well-organized and polished visualizations of your virtual and backup environments when planning VMware vSphere, Microsoft Hyper-V or Veeam deployments. It helps you to gain better visibility and valuable business insights.

 
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
 
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 2000 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

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

IP addresses can be stored in a database in any of several ways.  These ways may vary based on the volume of the data.  I was dealing with quite a large amount of data for user authentication purpose, and needed a way to minimize the storage.   …
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 …
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
How to fix incompatible JVM issue while installing Eclipse While installing Eclipse in windows, got one error like above and unable to proceed with the installation. This video describes how to successfully install Eclipse. How to solve incompa…

636 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