我开始学习如何创建C#以及如何使用接口和类。 有人可以教我如何将班级和界面分开,并仍然保持彼此的连接吗?
原因:如果我要更新代码,就会知道将代码添加到哪里,并且屏幕上的代码会更少。
namespace Car
{
class MainClass
{
//My Interface
interface ICar
{
int gas { get; set; }
//void refuel();
int getGasLeft();
}
//My Class
class Car : ICar
{
public int gas { get; set; }
public Car(string _name)
{
name = _name;
dist = 0;
gas = 40;
}
public void refuel(int lit)
{
gas += lit;
}
public int getGasLeft()
{
return gas;
}
}
//Main
public static void Main(string[] args)
{
Car toyota = new Car();
toyota.drive(100);
toyota.refuel(5);
Console.WriteLine("Name: " + toyota.name +
"\nGas Left: " + toyota.getGasLeft());
Console.ReadLine();
}
}
}
答案 0 :(得分:5)
在C#中,命名空间是从不同位置连接文件的方式。
例如,您可以创建一个文件夹Interfaces
并将ICar
放在此处。我将向您展示我的项目中的一个示例。
我的文件夹结构如下:
在我的ViewModel.cs
中,我使用了一个名为FakeData
的对象。如下所示,类FakeData
在TaskManager.Models
命名空间中。
现在,我们要进入项目,正在查看Models
文件夹。
在C#中,当您创建文件夹和其中的类时,您将基于文件夹名称获得namespace
。当然,您可以更改它。您可以根据需要编辑名称空间。
就您而言,您可以简单地创建一个名为Interfaces
的文件夹。右键单击,然后选择“新建类”,并为其命名,例如Icar.cs
。将您的代码粘贴到此处。您的默认名称空间将为ProjectName.Interfaces
。使您的界面为public
。然后,您可以通过在主类顶部添加using ProjectName.Interfaces
来调用界面。然后,您可以进行Main : ICar
而不会出现任何错误。
与Car
类相同的想法。您可以创建一个名为Models
的文件夹,并在其中创建一个名为Cars.cs
的类。它将具有名称空间ProjectName.Models
。如果要使用Interfaces
文件夹中的接口,则需要向Car.cs
类添加名称空间。就您而言,它看起来像using ProjectName.Interfaces
。然后,您可以在Car.cs
中调用该接口,而不会出现任何错误。
随时问我有关此问题。我会尽力帮助您。
答案 1 :(得分:1)
您需要了解公共,私有,受保护的名称空间等。
根据您的情况,在同一文件夹中创建一个名为ICar.cs的新文件,并将其声明为同一名称空间中的公共接口。