博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 多个class之间共享或修改变量
阅读量:3905 次
发布时间:2019-05-23

本文共 1363 字,大约阅读时间需要 4 分钟。

C# 多个class之间共享或修改变量

问题描述

    目前有class A和class B两个类,需求是想要将class A中的变量传给class B,然后在class B中更改class A传过来的变量。期望当class B修改完class A传来的变量后,class A中的变量值也发生相应的变化。

    为了实现这个操作,最直接的想法是定义一个全局变量,这样class A和class B都能直接对它进行更改。但是C#中没有了C++全局变量的概念,所有变量都得放在某一个类里面,因此全局变量得放在一个大家都能访问到的类里面

方法一

再定义一个class C,在class C中定义一个静态变量,这样class A与class B都能对这个静态变量进行访问和更改。

方法二

在class A中声明静态变量,并定义一个public方法。class A将待处理的数据传给class B后,class B每次对class A传过来的数据计算完成后,都调用class A中定义的public方法,将修改后的数据写入class A中定义的静态变量。

具体操作如下:

public class A{
//声明静态变量 static List
Dot = new List
(); //定义public方法 public void WriteData(List
threadDot) {
Dot.InsertRange(0,threadDot); } //实例化class B,并传递待处理数据 byte[] data = new byte[100]; B threadId = new B(data); //创建线程 Thread t = new Thread(new ThreadStart(threadId.ThreadProc()); //启动线程 t.Start(); t.Join(); }public class B{
byte[] data; List
threadDot = new List
(); private Vector3 xyz; //实例化class A A mainThreadData = new A(); public B(byte[] buffer) {
data = buffer; } public void ThreadProc() {
xyz.x = BitConverter.ToSingle(0, 0); xyz.y = BitConverter.ToSingle(0, 4); xyz.z = BitConverter.ToSingle(0, 8); threadDot.Add(xyz); //调用class A中的public方法。修改class A中的静态变量 mainThreadData.WriteData(threadDot); }}

参考链接

转载地址:http://dloen.baihongyu.com/

你可能感兴趣的文章
SQLite vs MySQL vs PostgreSQL
查看>>
Web services nginx+php
查看>>
docker vs rtk
查看>>
mysql tuning
查看>>
ubuntu linux root password
查看>>
callback in js
查看>>
git
查看>>
upgrade node.js with n
查看>>
simulate POST request
查看>>
HTTP and REST
查看>>
curl test REST interface
查看>>
nodemon to monitor node.js
查看>>
Node.js and Express
查看>>
guide for node.js and express, jade, mongodb
查看>>
express install
查看>>
md format and how to edit
查看>>
mac os rar files
查看>>
short url design
查看>>
Js Event Loop
查看>>
git init --bare
查看>>