2012-01-31 45 views
0

在C++/Cli中,是否可以从子命名空间访问内部方法而不反射?从子命名空间访问内部方法

实施例:

//TestClass.h 
namespace Test { 
    public ref class TestClass { 
    internal: 
     void InternalMethod(); 
    }; 
} 

//ChildClass.h 
namespace Test { 
    namespace Child { 
     public ref class TestClass { 
     public: 
      void AccessInternalMethod() 
      { 
       TestClass c; 
       c.InternalMethod(); 
      } 
     }; 
    } 
} 

好像这应该是可能的。对不起,如果之前已经问过。

回答

2

在C++/CLI中internal(以及C#internal和CLI等效assembly)与命名空间没有任何关系。当您在成员上使用该修饰符时,这意味着它可以从同一个装配内部访问,就像它声明的那样。

这意味着如果Test.Child.TestClassTest.TestClass位于同一组件中,则它可以访问InternalMethod()。如果它在另一个程序集中,则无法访问它。命名空间与此无关。

+0

我有点过早,还有一个编译器错误导致InternalMethod无法找到。我=愚蠢。谢谢! – 2012-01-31 02:43:45

+0

Svick =很高兴帮助+希望凯尔也喜欢SWTOR。 – svick 2012-01-31 07:21:07