“Global variable” in Visual C#

2019-03-01 01:12发布

I have made the Graph class, and i want to simulate a distribution network. The Graph works 100%. But, i want to use that same struct/class in all my application! For example: I have Form1 that shows the simulation, but i want to insert Nodes (for example) but i want to do it in Form2! Since the data is always in the same class, i could make my Graph instance global but C# does not take global variables. So, how would i solve this? Any ideas? Thank you!

5条回答
疯言疯语
2楼-- · 2019-03-01 01:32

Make a static class. The variables that need global access, put them inside that class.

Even better idea would be to use Singleton objects to represent globally accessible objects.

查看更多
三岁会撩人
3楼-- · 2019-03-01 01:35

Give the forms a reference to the Graph in their constructor.

 Graph g = new Graph();
 Form1 f1 = new Form1(g);
 Form2 f2 = new Form2(g);

Then both forms are working with the same graph.

查看更多
Juvenile、少年°
4楼-- · 2019-03-01 01:36

C# has static fields for this. You can use SIngleton pattern in conjunction with static field. But don't forget that misusage of application-wide objects can bring down your design.

查看更多
聊天终结者
5楼-- · 2019-03-01 01:39

Make your Graph instance a public static member of a static class and for all practical purposes you have your global.

查看更多
叼着烟拽天下
6楼-- · 2019-03-01 01:41

Take a look at the Singleton pattern for one possible approach to having a common object:

Singleton Pattern

查看更多
登录 后发表回答