First.csusing Second;
namespace First
{
public Class a : Form
{
}
public Class b : Form
{
}
}Second.csnamspace Sencond
{
public Class c: Form
{
}
}如上所示的结构。
我在Class a中要使用到c,所以就在First的“引用”中添加了Second。但现在我在c中又要使用Class b。不知道该怎么写。
请高手指教

解决方案 »

  1.   

    直接在Second.cs 
    里面加using First; 好了。
      

  2.   

    两个文件在同一命名空间可以吧?!
    Frist.csnamespace First
    {
        public Class a : Form
        {
        }
        public Class b : Form
        {
        }
    }Second.csnamespace First
    {
        public Class c : Form
        {
        }
    }
      

  3.   

    code=C#]
    using Second;
    namespace First
    {
        public Class a : Form
        {
        }
        }[/code]namspace Sencond
    {
        public Class c: Form
        {
        }
        public Class b : Form
        {
        }
    }
      

  4.   

    VS 08下正常运行First.cs:using System.Windows.Forms;
    using Second;
    namespace First
    {
        public class a : Form 
        {
            private c _c;
        }    public class b : Form
        {
        }
    }
    Second.csusing System.Windows.Forms;
    using First;namespace Second
    {
        public class c: Form
        {
            private a _a;
        }
    }
    测试代码:using System;
    using First;namespace ConsoleApplication1
    {
        internal class Program
        {
            private static void Main(string[] args)
            {
                a _a = new a();
                Console.WriteLine(_a);
                Console.ReadLine();
            }
        }
    }
      

  5.   

    A 用 B的链接库,B再用A的链接库。
    很正常的。不存在什么循环的问题。
      

  6.   

    两个命名空间在同一个项目中时,没有任何问题。若两个命名空间不在同一个项目中,则变成两个程序集之间的互相引用。程序集之间的引用无所谓循环不循环的问题。但如果两个程序集要互相引用,并且两个程序集项目在一个解决方案中,添加引用时不要用项目的方式添加,也不要添加项目调试文件夹下的DLL,而是把生成的DLL独立放在另一个位置,将此DLL添加到引用中。这样带来的结果是,当你对某个项目有修改后,另一个项目不能智能感知,需要将修改后的项目重新生成,并将生成的DLL文件覆盖引用位置的文件,才能在另一个项目中体现。若两个程序集项目不在同一个解决方案中,如果要同时打开编辑修改,可能也需要以上面的方案处理。若两个程序集项目不在同一个解决方案中,也不会同时打开编辑修改,似乎也没有关系。:-)
      

  7.   

    另外,可能还需要分清添加引用和Using语句的关系,添加引用是针对程序集的,是要让开发工具知道项目用到哪些DLL并且这些DLL所在的位置。而Using只是导入名称空间,只是为了在代码中书写对象名称时可以简化书写。Using导入的名称空间必须在已经添加到引用中的DLL文件或者已经注册到GAC的DLL文件中。
      

  8.   

    21楼UP!
    楼主所述的问题应该是类似于在三层架构中的BLL层和DAL层不同类库之间调用的问题,
    如果是这样的话,你的类库建立的就有问题了,
    建议重新改写你的类库,减少耦合度