大山的LabVIEW/TestStand分享大山的LabVIEW/TestStand分享

面向 LabVIEW 与 TestStand 的个人知识分享站

LabVIEW vs C#:类的Property

LabVIEW vs C#:类的Property

从 LabVIEW 类的 Accessor VI 到 C# 属性的两种写法——逐一对比,彻底弄懂

语法Property
发布时间:2026-08-05阅读时长:15 分钟浏览 30访客仅可浏览正文内容

下表列出核心概念的对应关系:

概念LabVIEWC#
私有数据存储lvclass 私有数据簇中的控件private 字段
读取数据的入口Accessor VI(Read 模式)get { return _field; }
写入数据的入口Accessor VI(Write 模式)set { _field = value; }
最简单的创建方式右键类 → New → VI for Data Member Access自动属性:{ get; set; }
加入校验逻辑在 Accessor VI 的 Block Diagram 中添加判断在 set 块中写 if 判断
外部使用方式Property Node 或直接连线到 Accessor VIobj.Property 直接读写
调用时的外观像连线一个 VI像访问一个字段(语法透明)
LabVIEW — 自动生成 Accessor VI
C# — 自动属性
public string Name { get; set; }
LabVIEW — 手写校验逻辑
C# — 带逻辑的属性
private double _reading;

public double Reading
{
    get { return _reading; }
    set
    {
        if (value < 0)
            throw new ArgumentException("读数不能为负");
        _reading = value;
    }
}
LabVIEW — Sensor.lvclass
C# — Sensor.cs
public class Sensor
{
    // 自动属性:无校验
    public string Name { get; set; }

    // 带校验的属性
    private double _reading;
    public double Reading
    {
        get => _reading;
        set
        {
            if (value < 0)
                throw new ArgumentException(
                    "读数不能为负");
            _reading = value;
        }
    }
}
C#
public string Name { get; }          // 只读
public double Reading { get; set; }  // 可读可写
访问级别
// 外部可读,但只能在类内部修改
public double Reading { get; private set; }
重点

附件下载

留言区

只有注册用户可以留言和下载附件。立即注册已有账号,去登录
正在加载留言...