c# - 为属性的属性添加功能

标签 c#

我有一个名为 Graph 的对象。

我在 Graph 类中有顶点列表。所以类看起来有点像这样。它是 .Net 2.0 代码。

public class Graph
{
    public List<Vertex> Vertices 
    {
        get{ return _vertices}
    }
} private List<Vertex> _vertices;

这是我的问题。我想在将 Vertex 对象添加到 Graph 对象之前验证它(通过调用 Vertex.IsValid() 方法)。

最好的方法是什么?我喜欢我们在属性的 getter block 中添加代码的方式。有没有类似的方法?

我有变通办法,但希望以尽可能最好的方式做到这一点。

最佳答案

最好的解决方案是不要将顶点列表公开为可变列表。相反,如果您需要 Vertices 属性,请使其返回只读数据结构。然后,只需包含一个 Add() 方法,并验证您想要的一切:

public ReadOnlyCollection<Vertex> Vertices
{
    get { return _vertices.AsReadOnly(); }
}

public void Add(Vertex vertex)
{
    if (vertex.IsValid())
        _vertices.Add(vertex);
}

关于c# - 为属性的属性添加功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7880197/

相关文章:

c# - 了解用户是否已从 C#/.NET 应用程序连接

c# - OnPropertyChange 触发顺序

c# - 如何获取实现 IMyInterface 的引用中的所有类型

c# - 对 C# 循环中的多线程感到困惑

c# - 奇数构造函数

c# - App.Config 中的 Entity Framework 连接字符串

c# - 返回过去五年年终余额的数组 - (C#)

c# - 无法加载文件或程序集 EntityFramework

c# - 动态删除属性的 C# 属性

c# - MarshalAs 属性案例研究