You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中为FileName属性创建赋值回调以读取文本文件的方法问询

在C#中为属性赋值添加回调逻辑

对于你的需求,最直接的方式是放弃自动属性的简写,手动实现属性的get和set方法,在set块里嵌入文件读取的回调逻辑:

// 私有字段存储文件名的实际值
private string _fileName;
// 存储读取到的文件内容,方便后续调用
private string[] _fileLines;

public string FileName
{
    get => _fileName;
    set
    {
        // 避免重复赋值时重复执行读取逻辑(可选但推荐)
        if (_fileName != value)
        {
            _fileName = value;
            
            // 执行赋值后的回调逻辑
            if (!string.IsNullOrEmpty(_fileName))
            {
                // 加入异常捕获,防止文件不存在、权限不足等问题导致崩溃
                try
                {
                    _fileLines = System.IO.File.ReadAllLines(_fileName);
                    // 这里可以添加更多后续处理,比如通知其他逻辑内容已更新
                }
                catch (System.IO.FileNotFoundException)
                {
                    _fileLines = Array.Empty<string>();
                }
                catch (Exception)
                {
                    _fileLines = Array.Empty<string>();
                }
            }
            else
            {
                // 赋值为空时清空文件内容
                _fileLines = Array.Empty<string>();
            }
        }
    }
}

核心说明

  • 自动属性{get;set;}是编译器帮你自动生成私有字段的简写,手动实现后可以完全控制赋值时的逻辑
  • set块会在每次给FileName赋值时触发,刚好满足你“赋值即执行回调”的需求
  • 异常捕获和值判断都是为了让代码更健壮,适合新手调试和避免不必要的错误

内容的提问来源于stack exchange,提问作者Pablo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 22:11:05