Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

what is the definition of a "circular reference"???

Posted on 2006-07-10
2
979 Views
Last Modified: 2012-08-14
Hi,

We are in the process of transferring our legacy system to asp.net. We have multiple solutions all containing one project each. We have a lot of situations whereby a class in "Solution A" will call a class in "Solution B" and vice versa. Does this constitute a circular reference or does this term only refer to projects which call other projects within the same solution??? We know that visual studio will now build projects which call other projects inside the same solution due to circular references, however we have not run into this error with the multiple solution/one project setup...We are wondering if this setup will cause us any problems down the road? or Should we combine solutions to eliminate these types of calls and be forced to have longer build times???
0
Comment
Question by:pathix
2 Comments
 
LVL 13

Accepted Solution

by:
devsolns earned 500 total points
ID: 17075788
Yeah that is pretty much on as far as a circular reference.  Think about this, should a circular reference really exist for code that is in two difference assemblies?  Probably not.  There are things that you can do to avoid circular references such as using interfaces.


-As you can see from the following a circular reference is set between class A1 & B1.  

    class A1
    {
        public void Foo(){}

    }

    class B1
    {
        public void Foo(A1 a)
        {
            a.Foo();
        }
    }

-The following code removes the circular reference while maintaining/improving functionality.

    interface IFoo
    {
        void Foo();
    }

    class A2 : IFoo
    {
        public void Foo() { }
    }

    class B2
    {
        public void Foo(IFoo a)
        {
            a.Foo();
        }
    }



-gp
0
 
LVL 7

Expert Comment

by:RainMan82
ID: 17075999
A circular reference is caused when the calculation that you are doing uses itself to calculate.
This results in an endless calculation, and gives you an error.

It can happen if you have a query which is dependant on the result of another and then use both of these queries as sources for another query.

Alternatively, it can be caused by naming objects the same - which is why it is important to generate unique names for all objects that follow a specific naming convention.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this Article, I will provide a few tips in problem and solution manner. Opening an ASPX page in Visual studio 2003 is very slow. To make it fast, please do follow below steps:   Open the Solution/Project. Right click the ASPX file to b…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…

792 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question