You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中调用嵌套命名空间内的类方法失败,求解决方案

问题原因及解决方案

你的问题出在命名空间的嵌套结构上:NameSpace2是NameSpace1的子命名空间,并非与NameSpace1同级的ConsoleApp1直接子命名空间。因此在ConsoleApp1.Program中直接引用NameSpace2,编译器无法定位到该命名空间。

解决方法

方法1:使用完整嵌套命名路径调用

修改Main方法中的调用代码,通过父命名空间定位到NameSpace2:

static void Main(string[] args)
{ 
    int sum1 = NameSpace1.MyClass.add(1, 2);
    // 修正为完整的嵌套命名空间路径
    int sum2 = NameSpace1.NameSpace2.MyClass.add(1, 2, 3);
}

方法2:添加using指令引入子命名空间

在Program文件的using区域添加子命名空间的引用,后续可直接调用:

// 在现有using后添加
using ConsoleApp1.NameSpace1.NameSpace2;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        { 
            int sum1 = NameSpace1.MyClass.add(1, 2);
            // 直接调用,注意若两个MyClass存在命名冲突,需指定命名空间
            int sum2 = MyClass.add(1, 2, 3);
        }
    }
}

方法3:使用命名空间别名简化调用

如果担心命名冲突,可以给子命名空间设置别名:

// 在现有using后添加别名
using NS2 = ConsoleApp1.NameSpace1.NameSpace2;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        { 
            int sum1 = NameSpace1.MyClass.add(1, 2);
            // 通过别名调用
            int sum2 = NS2.MyClass.add(1, 2, 3);
        }
    }
}

内容的提问来源于stack exchange,提问作者Brandon Rogers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 03:40:22