C#中的一些小方法

本文仅用于记录开发过程中使用的一些方法和技巧等。

未来会不断编辑。

一、选择文件存储的路径

using (FolderBrowserDialog fbd = new FolderBrowserDialog())
{
    fbd.Description = "选择保存文件夹";

    if (fbd.ShowDialog() != DialogResult.OK)
        return;
    
    Console.WriteLine($"选中的路径:{fbd.SelectedPath}");
}

二、byte[]的打印方法

  1. 转为16进制
BitConverter.ToString(data)
  1. 转为字符串
    如果data是字符串,比如ASCII码
Encoding.UTF8.GetString(data)
  1. 逐字节打印
foreach (var b in data)
{
    Console.Write($"{b:X2} ");
}
Console.WriteLine();

三、字典缓存

// 类级别变量
private Dictionary<string, W2DeviceControl> deviceDict = new Dictionary<string, W2DeviceControl>();

// 函数A中
foreach (var e in emgList)
{
    W2DeviceControl w2DeviceControl = new W2DeviceControl();
    w2DeviceControl.rtLabelW2Name.Text = e.deviceName;
    // ... 其他初始化代码
    
    // ⭐ 添加到字典
    deviceDict[e.deviceName] = w2DeviceControl;
    
    flowLayoutPanelW2.Controls.Add(w2DeviceControl);
}

// 函数B中 - 直接通过字典查找并修改
if (deviceDict.TryGetValue(nameTxt, out var w2DeviceControl))
{
    w2DeviceControl.labelEle.Text = $"·  {newEleValue}%";
    // 只修改电量,不影响其他UI
}

四、整数相除得到小数

这里我真的踩坑了!我想计算113/1263,然后得到一个小数,怎么算都是0,因为我没有进行类型转换!!!

在C#中,两个整数相除时,默认情况下会得到一个整数结果,即使实际结果是一个带小数点的数值。为了得到带小数点的结果,可以使用以下几种方法:

  1. 使用浮点数类型
    将其中一个或两个整数转换为浮点数类型(如float或double),然后进行除法运算。例如:
int itemp = 3706; // 实际值37.06℃
int iNum = 100;
float ftemp = (float)itemp / iNum;
Console.WriteLine(ftemp); // 输出:37.06
// 或者:
int itemp = 3706; // 实际值37.06℃
int iNum = 100;
float ftemp = itemp * 1.0f / iNum;
Console.WriteLine(ftemp); // 输出:37.06
  1. 使用Convert.ToDouble方法
    将整数转换为double类型,然后进行除法运算。例如:
int itemp = 3706; // 实际值37.06℃
int iNum = 100;
double dtemp = Convert.ToDouble(itemp) / Convert.ToDouble(iNum);
Console.WriteLine(dtemp); // 输出:37.06
  1. 保留指定小数位数
    如果需要保留特定的小数位数,可以使用Math.Round方法。例如,保留两位小数:
int a = 12345;
int b = 100;
double result = Math.Round((double)a / b, 2);
Console.WriteLine(result); // 输出:123.45
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HQL_seven

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值