在Visual Studio的C#项目中调用另一文件的方法失败如何解决?
C#跨文件静态方法调用失败排查方案
文件未加入项目编译队列
这是最高发的问题:如果第二个.cs文件没有被包含到当前项目的编译清单中,编译器不会识别该文件内定义的SecondClass类,自然无法调用对应方法。
解决方法:- 若使用Visual Studio/Rider等IDE:右键项目名称→「添加」→「现有项」,选中你存放
SecondClass的.cs文件,确认文件出现在项目的文件结构列表中即可。 - 若使用dotnet cli管理项目:将第二个.cs文件移动到项目根目录或者任意子目录下,dotnet会自动识别目录内的所有.cs文件参与编译。
- 若使用Visual Studio/Rider等IDE:右键项目名称→「添加」→「现有项」,选中你存放
命名空间引用缺失
虽然你两个文件的命名空间均为uppdrag_2.cs,理论上同命名空间下不需要额外引用,但如果存在拼写误差(比如大小写、字符写错),就会找不到类。
解决方法:在主文件的顶部using System;下方添加一行:using uppdrag_2.cs;调用后输出被立即清空
你的现有代码调用SecondClass.Second()后马上执行了Console.Clear(),就算方法调用成功,输出的内容也会被瞬间清掉,导致你误以为调用失败。
解决方法:在调用语句后加一行等待按键的代码,确认输出:SecondClass.Second(); Console.ReadKey(); // 新增这行,按任意键后再清屏 Console.Clear();项目缓存导致识别异常
如果前面的配置都正常还是报错,大概率是IDE的编译缓存出了问题。
解决方法:执行「清理项目」→「重新生成项目」操作,清除旧的编译缓存后重新编译即可。
内容的提问来源于stack exchange,提问作者JohannaH
相关产品推荐
相关产品推荐

