public static AbstractFactory GetInstance()
12        {
13            string factoryName = Constant.STR_FACTORYNAME.ToString();
14
15            AbstractFactory instance;
16
17            if(factoryName == "ChineseFactory")
18                instance = new ChineseFactory();
19            else if(factoryName == "AmericanFactory")
20                instance = new AmericanFactory();
21            else
22                instance = null;
23
24            return instance;
25        }小弟初学c#  以前学c,return 8,这个知道,返回的是值,这里返回一个对象,或者返回一个类,不懂了c#中的传递好像天马行空一样,什么都能传递这个是怎么传递的,堆栈吗???

解决方案 »

  1.   

    和vc中一样的,将instance不精确地认为是一个AbstractFactory 的类指针,类指针的实例在栈中,而指向的类实例在堆中;
    //____________________________________________________
    小小少年,言误勿怪!
      

  2.   

    可以看一下
    http://agassi001.cnblogs.com/archive/2006/05/10/396574.html
      

  3.   

    c#的大部分对象是引用类型变量
    所以上述代码
    类似c++
    public static AbstractFactory* GetInstance() 
    12        { 
    13            string factoryName = Constant.STR_FACTORYNAME.ToString(); 
    14 
    15            AbstractFactory* instance; 
    16 
    17            if(factoryName == "ChineseFactory") 
    18                instance = new ChineseFactory(); 
    19            else if(factoryName == "AmericanFactory") 
    20                instance = new AmericanFactory(); 
    21            else 
    22                instance = null; 
    23 
    24            return instance; 
    25        }