如何使用Visual Studio在C#中的其他文件中使用类?

arm*_*ong 20 c# visual-studio

我是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不够吗?

在此输入图像描述


有些人问他们是否在同一个程序集/同一个项目中,我认为它们是,因为这里是创建它们的过程:

  • 一个使用Console C#Project模板的新项目,然后program.cs是默认创建的.
  • Class2.cs是用[File] - > [New] - > [File] - > [C#class]创建的,并保存在program.cs生命的同一个文件夹中.

说实话,我不知道他们是否在同一个集会/同一个项目中,但我猜他们是.

Kav*_*uwa 17

根据您的解释,您没有将您Class2.cs的项目包括在内.您刚刚创建了所需的类文件,但未将其包含在项目中.

Class2.cs是使用[File] - > [New] - > [File] - > [C#class]创建的,并保存在program.cs所在的同一文件夹中.

做以下事情来克服这一点,

只需Right click在您的项目上 - > [添加] - > [现有项目...]:选择Class2.cs并按确定

现在应该解决问题.

此外,添加新类时使用此过程,

Right click 在项目上 - > [添加] - >选择必需项目(前 - 班级,表格等)

  • 感谢您的帮助,但是有没有更好的方法来创建一个文件,默认情况下它属于同一个项目,我认为每次创建文件时都引用它不是一个好方法。 (2认同)

小智 10

是的,我只是犯了同样的“菜鸟”错误并找到了这个线程。实际上,我已将该类添加到解决方案而不是项目中。所以它看起来像这样:

错误和正确的描述

只是添加这个希望对某人有所帮助。


Inv*_*nda 5

如果我们能够看到实际的项目结构,对我们来说会更有利,因为仅类并没有说明太多。

假设两个 .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来创建一个新类。