博客
关于我
C# 多个class之间共享变量
阅读量:789 次
发布时间:2019-03-24

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

C#中的变量管理与C++有所区别,因为它不支持全局变量的概念。因此,所有变量都需要放置在某个类中。为了保证类A和类B能够互相访问和修改变量,可以采取以下两种方法来实现数据传递和变量更新。

方法一:通过静态变量实现变量共享

为了实现类A和类B之间的变量共享,可以定义一个全局类(Global Variable),将其设为公共类,供所有类引用。这样,类A和类B都可以访问并修改这些变量。具体实现方式如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace P
{
static class GlobalVariable
{
public static bool CornerInfoFlag = true;
public static bool RTArrayInfoFlag = true;
public static bool RTLineInfoFlag = true;
public static bool RTGuaiJiaoInfoFlag = true;
public static bool SideArrayInfoFlag = true;
public static bool SideLineInfoFlag = true;
}
}

方法二:通过类A的静态变量进行数据传递

另一种方法是,在类A中定义静态变量,并提供public方法供类B在修改数据后调用。类B在完成计算后,通过调用类A的方法,将最新数据写入类A的静态变量中。这样可以避免全局变量的多处修改问题。示例代码如下:

public class A
{
private static List
Dot = new List
();
public void WriteData(List
threadDot)
{
Dot.InsertRange(0, threadDot);
}
}
public class B : Thread
{
byte[] data;
private List
threadDot = new List
();
private Vector3 xyz;
private readonly A mainThreadData;
public B(byte[] buffer)
{
data = buffer;
mainThreadData = new A();
}
public void ThreadProc()
{
xyz.x = BitConverter.ToSingle(data, 0);
xyz.y = BitConverter.ToSingle(data, 4);
xyz.z = BitConverter.ToSingle(data, 8);
threadDot.Add(xyz);
mainThreadData.WriteData(threadDot);
}
}

这种方法通过类A的静态变量实现了变量的传递和更新,保证了数据的一致性和安全性。

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

你可能感兴趣的文章
npm install 报错 ERR_SOCKET_TIMEOUT 的解决方法
查看>>
npm install 报错 Failed to connect to github.com port 443 的解决方法
查看>>
npm install 报错 fatal: unable to connect to github.com 的解决方法
查看>>
npm install 报错 no such file or directory 的解决方法
查看>>
npm install 权限问题
查看>>
npm install报错,证书验证失败unable to get local issuer certificate
查看>>
npm install无法生成node_modules的解决方法
查看>>
npm install的--save和--save-dev使用说明
查看>>
npm node pm2相关问题
查看>>
npm run build 失败Compiler server unexpectedly exited with code: null and signal: SIGBUS
查看>>
npm run build报Cannot find module错误的解决方法
查看>>
npm run build部署到云服务器中的Nginx(图文配置)
查看>>
npm run dev 和npm dev、npm run start和npm start、npm run serve和npm serve等的区别
查看>>
npm run dev 报错PS ‘vite‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
查看>>
npm scripts 使用指南
查看>>
npm should be run outside of the node repl, in your normal shell
查看>>
npm start运行了什么
查看>>
npm WARN deprecated core-js@2.6.12 core-js@<3.3 is no longer maintained and not recommended for usa
查看>>
npm 下载依赖慢的解决方案(亲测有效)
查看>>
npm 安装依赖过程中报错:Error: Can‘t find Python executable “python“, you can set the PYTHON env variable
查看>>