C#:如何从基类属性派生新属性的值?
我想给treenode对象添加一个属性 我希望新属性值(即key)是从Treenode.Fullpath派生的 我如何实现它C#:如何从基类属性派生新属性的值?,c#,treenode,C#,Treenode,我想给treenode对象添加一个属性 我希望新属性值(即key)是从Treenode.Fullpath派生的 我如何实现它 class ItemNode:TreeNode { internal string key { get; set; } = base.FullPath.split("\\")[1]; //Error } 在初始化字段时无法计算该值。现在太早了。对象仍在构造中,编译器无法确保基部分处于有效状态,因此不允许访问其数据 我建议您自己实现该属性,以便可以控制逻辑何时
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;
}
}
}
在初始化字段时无法计算该值。现在太早了。对象仍在构造中,编译器无法确保基部分处于有效状态,因此不允许访问其数据 我建议您自己实现该属性,以便可以控制逻辑何时执行。然后你可以随时加载它。例如,一个简单的延迟加载可以如下工作:
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;
}
}
}
“不工作”不是问题的技术描述我更改了问题标题。“不工作”不是问题的技术描述我更改了问题标题。