我是C#和MS visual studio的新手,我想使用在另一个文件中定义的C#类,但是无法使它工作.
这是program.cs(为什么我不能重命名该文件?)
using System;
namespace TestCSharp2
{
class Program
{
static void Main(string[] args)
{
Class2 class2 = new Class2();
// here the IDE will complain that cant find namespace or balabala..
class2.setValue(10);
Console.WriteLine(class2.getValue().ToString());
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是Class2我想在文件中使用的Class2.cs:
namespace TestCSharp2
{
class Class2
{
int i;
public void setValue(int i)
{
this.i = i;
}
public int getValue()
{
return this.i;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我应该#include还是什么?还use namespace不够吗?

有些人问他们是否在同一个程序集/同一个项目中,我认为它们是,因为这里是创建它们的过程:
program.cs是默认创建的.program.cs生命的同一个文件夹中.说实话,我不知道他们是否在同一个集会/同一个项目中,但我猜他们是.
Kav*_*uwa 17
根据您的解释,您没有将您Class2.cs的项目包括在内.您刚刚创建了所需的类文件,但未将其包含在项目中.
Class2.cs是使用[File] - > [New] - > [File] - > [C#class]创建的,并保存在program.cs所在的同一文件夹中.
做以下事情来克服这一点,
只需Right click在您的项目上 - > [添加] - > [现有项目...]:选择Class2.cs并按确定
现在应该解决问题.
此外,添加新类时使用此过程,
Right click 在项目上 - > [添加] - >选择必需项目(前 - 班级,表格等)
如果我们能够看到实际的项目结构,对我们来说会更有利,因为仅类并没有说明太多。
假设两个 .cs 文件位于同一个项目中(如果它们位于同一解决方案内的不同项目中,则必须添加对包含 Class2.cs 的项目的引用),您可以单击代码Class2中出现的带红色下划线,然后按CTRL+ .(句号)或单击应该在那里的蓝色栏。出现的第一个选项将using自动添加适当的语句。如果没有这样的菜单,则可能表明项目结构有问题或引用丢失。
您可以尝试 make Class2 public,但听起来这在这里不是问题,因为默认情况下您所做的是internal class Class2,因此Class2如果两者都位于同一个项目/程序集中,则应该可以访问。如果您引用包含其中的不同程序集或项目Class2,则必须创建它public才能访问它,因为internal无法从程序集外部访问类。
至于重命名:您可以Program.cs在“解决方案资源管理器”中单击 ,然后按 F2 来重命名。然后,它将打开一个对话框窗口,询问您是否也Program应该重命名类本身及其所有引用,这通常是您想要的。Program或者,您可以在声明中重命名该类,然后再次使用小蓝色条(或者再次使用CTRL+ .)打开菜单并执行相同的操作,但它不会自动相应地重命名实际文件。
在您的问题编辑后进行编辑:我从未使用过您使用的这个选项,但通过快速检查,我认为它确实不在同一个项目内。向项目添加新类时,请执行以下操作: 在解决方案资源管理器中,右键单击您创建的项目,然后选择 [添加] -> [类] 或 [添加] -> [新项目...],然后选择“类” '。这将自动使新类成为项目的一部分,从而成为程序集的一部分(程序集基本上是构建项目后的“最终产品”)。对我来说,还有一个快捷方式Alt+ Shift+C来创建一个新类。