I'm trying to figure out the best way of communication between two classes:
- MainForm.cs
- ServiceChild.cs
(1) Now I have ServiceChild.MyMethod() which gets around 10 arguments using REF keyword in order to use arrays and variables and returns via those arguments the result values.
And I have more than one method of this type.
I don't like this kind of programming and I'm trying to make the code look more clear and short.
Yesterday I've tryed next scheme:
ServiceChild inherits MainForm to gain access to all necessary feilds and members, instead of getting them as method arguments.
The problem pops out on the run time - possible infinite recursion.
The cause: it's not allowed to make copy of child(inheriting) class inside inherited class...
Here's the code:
Expand|Select|Wrap|Line Numbers
- public class Child : Form1
- {
- public Child()
- {
- }
- public void MyMethod()
- {
- }
- public void printarr()
- {
- }
- }
- ///////////////////////////////
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private Child ch = new Child(); // runtime error - possible infinite recursion
- protected int[] array1 = new int[] {0, 1, 2, 3}; // inherited member
- private void button2_Click(object sender, EventArgs e)
- {
- ch.printarr();
- }
- private void button1_Click(object sender, EventArgs e)
- {
- ch.MyMethod();
- }
- }