c# - C#:如何从基类属性派生新属性的值?
问题描述
我想为 treenode 对象添加一个属性。
我希望新的属性值(即键)是从 Treenode.Fullpath 派生的。
我该如何实施?
class ItemNode:TreeNode
{
internal string key { get; set; } = base.FullPath.split("\\")[1]; //Error
}
解决方案
在初始化字段时无法计算该值。太早了。该对象仍在构造中,编译器无法确定基础部分是否处于有效状态,因此不允许访问其数据。
我建议您自己实现该属性,以便您可以控制逻辑何时执行。然后你可以随时加载它。例如,一个简单的延迟加载可以像这样工作:
class ItemNode:TreeNode
{
internal private string _key = null;
internal public string Key
{
get
{
if (_key == null) _key = base.FullPath.split("\\")[1];
return _key;
}
set
{
_key = value;
}
}
}
推荐阅读
- python - 将视频从 python 服务器流式传输到 Web 客户端
- ios - 在自定义单元格中获取 tableView rowHeight(以编程方式)
- php - 不同名称路径中的 Laravel 7 ReflectionException
- javascript - 开玩笑的单元测试使用关于“导入”的解构分配
- thunderbird - Thunderbird 68 不会从 ~/.thunderbird 文件夹导入旧帐户
- algorithm - 计算调查中下一个最佳问题的算法
- mongodb - 如何将值与MongoDB中相同字段的先前值进行比较
- c# - Appium 检测到 WindowElements 的次数只有 30%
- javascript - 在 Nextjs 中向 _app.js 添加持久化组件
- sql - 用户名和标题的 SQL 匹配