从子命名空间访问内部方法

时间:2012-01-31 00:08:17

标签: c++-cli

在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();
            }
        };
    }
}

似乎这应该是可能的。对不起,如果之前有人询问过。

1 个答案:

答案 0 :(得分:2)

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

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