0

当我尝试使用 Visual Studio 和 Enterprise Architect 编译我的程序时出现此错误。

我正在为 Enterprise Architect 编写一个工具,我必须制作一个图表,并且我继续收到此错误,我不知道该怎么办。

我有问题的代码是:

    public Graph(EA.Repository repository)
    {

        EA.Diagram maindiagram;
        this.modelRepository = repository;
        maindiagram = repository.GetCurrentDiagram(); //recupero del diagramma
        this.diagramId = maindiagram.DiagramID; //identificativo del diagramma

        //inizializzazione nodi
        Collection nodeCollection = maindiagram.DiagramObjects;
        nodeList = new ArrayList();


        foreach (DiagramObject diagram in maindiagram.DiagramObjects)
        {
            diagramList.Add(diagram);
            foreach (Element element in diagramList)
            {
                if (element.Type == "Class"|| element.Type == "Component"||element.Type == "Package")
                { nodeList.Add(new Node(diagram, ref repository)); }

            }                

        }

        //inizializzazione archi 
        Collection linkCollection = maindiagram.DiagramLinks;
        linkList = new ArrayList();

        foreach (DiagramLink edge in maindiagram.DiagramLinks)
        {
            edgeList.Add(edge);
            foreach(Connector connector in edgeList)
                if (connector.Type == "Association" || connector.Type == "Aggregation" || connector.Type == "Compose" || connector.Type == "Dependency" 
                    || connector.Type == "Generalization" || connector.Type == "Realization")
                { linkList.Add(new Link (edge, ref repository));}
        }

如果你知道怎么做,请帮忙。

十分感谢!

4

2 回答 2

0

repository可能是null- 您应该对参数参数进行空检查以确定您是否可以继续;也maindiagram可能是null(据我们所知,如果repository是某事,那么GetCurrentDiagram可能会返回null.

以可能导致您的问题的方式访问这两件事。

diagramList不存在于方法的范围内,因此假设它具有更自由的范围:这也可能什么都不是,但是您调用Add它。您还可以将其视为某物进行迭代,并且在不检查是否存在的情况下element尝试null访问属性。

简而言之,您发布的代码中有很多地方可能会出现这种情况。您应该更具体地了解错误实际发生的位置,但是,答案将是相同的:something is nothing

于 2012-04-16T12:18:13.923 回答
0

仅通过提供的消息无法理解此代码中发生了什么。

于 2012-04-16T11:54:42.973 回答