c# - 继承是否也会自动从其父级继承 "inherit"命名空间?

标签 c# c++ namespaces argument-dependent-lookup using-directives

只是想问关于命名空间的一般问题。如果类 A 继承类 B 并且没有显式引用( using )B 的命名空间,我是否必须显式地 using B我的调用代码中的命名空间从 A 的实例调用 B 的方法?这种语言是否依赖(C#、C++)?

在 C# 中:

// Namespace X
class A : B 
{
    public void methodA(){...}
}

// Namespace Y
class B
{
    public void methodB(){...}
}

在使用 A 的其他代码中:
using X;
// do I need using Y?
...
A obj = new A();
obj.methodB(); // calls methodB() using instance of A
...

最佳答案

如果 A位于命名空间 XBY ,你做不到

// Namespace X
class A : B 
{
...
};

你需要做:
class A : Y::B 
{
...
};

所以你看你必须继承B使用资格,那里没有什么特别的。这是在 C++ 中。

A需要更多来自 Y它需要类似地限定它。

任何人使用 A需要用 X::A 来限定它或导入所有内容或仅导入 A ,取决于,使用它 - using X::A;using namespace X; .这对内部事物的可见性没有影响 Y尽管。

唯一可能让您感到惊讶的是 Koenig Lookup,所以不妨读一读。

关于c# - 继承是否也会自动从其父级继承 "inherit"命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57714549/

相关文章:

c++ - Int vs Double 汇编

c++ - 空基优化子对象的地址

c++ - boost 池库 : How to reuse created objects?

c++ - 命名空间中的静态变量

php - 如何在不更改其源的情况下将自定义命名空间应用于外部库?

c# - Window App store > 新项目 WindowsRuntimeComponent for background is not working with WCF data service

c# - 如何从图片url中解析出图片名称

c# - 在 C# 三元运算符中调用函数

namespaces - PhpStorm 使用不正确的命名空间

c# - ASP.Net 单选按钮列表 : using jQuery to get the ListItem selected