c#,将类文件导入主程序文件

c#,将类文件导入主程序文件,c#,class,C#,Class,我从c#开始,在将类文件导入主文件时遇到问题。 在这一点上,我不明白为什么它不起作用 这是文件目录 这是主要节目 这是我想导入的另一个类,名为Player。 当我尝试使用点符号时。currentPlayer.name它无法识别它。这里有什么问题?如果你的班级看起来像: public class Player{ //this is a publicly visible property called Name public string Name { get; set; }

我从c#开始,在将类文件导入主文件时遇到问题。 在这一点上,我不明白为什么它不起作用

这是文件目录

这是主要节目

这是我想导入的另一个类,名为Player。


当我尝试使用点符号时。currentPlayer.name它无法识别它。这里有什么问题?

如果你的班级看起来像:

public class Player{

  //this is a publicly visible property called Name
  public string Name { get; set; }

  public Player(){
    //this is a constructor method
  }


}
然后它将如您所期望的那样工作(尽管您需要说
currentPlayer.Name
,而不是
Name
-C#区分大小写):


编码时请遵守C#命名指南-ppublicthingsarepascalcase

使用公共属性,例如:

public string name {get; set;}

您正试图从该类的作用域之外访问播放器构造函数中声明的变量。构造函数中声明的变量只能在该构造函数的范围内访问

我知道你想访问所有这些局部变量,比如currentHealth或maxHealth,作为类的属性。将它们移到构造函数范围之外(在Player(){…}之外),并使用getter/setter将它们声明为属性(请参见下面的示例)

如果您想访问实例Player.Name,我建议您按如下方式声明Player类:

public class Player
{
   public string Name { get; set; }
}
var currentPlayer = new Player();    
currentPlayer.Name = "Some name";
然后,在Program.cs的Main方法中,您可以按如下方式调用它:

public class Player
{
   public string Name { get; set; }
}
var currentPlayer = new Player();    
currentPlayer.Name = "Some name";

我可以这样写,从Player类中获取变量。下面的代码来自类程序

namespace TextRpg
{
class Program
{
    public static Player currentPlayer = new Player();
    static void Main(string[] args)
    {
        currentPlayer.name = Console.ReadLine();
        Start();    
    }

    static void Start()
    {
        Console.WriteLine("A GAME");
        Console.WriteLine("Name: ");
            
    }
}
从球员的职业中

class Player
{

    public string name = "";

        public int currentHealth = 100;
        public int maxHealth = 100;

        int inventorySpace = 5;
        int maxInventorySpace = 5;

        int carryWeapons = 2;
        int maxCarryWeapons = 2;

        int armorValue = 0;
        int maxArmorValue = 10;

}
现在我可以通过点符号从Player类到Program类访问每个变量(string和int)


我需要将int改为public,否则在program类中找不到它们。

有什么错误?在哪条线上?你的IDE有什么建议吗?看到你的课程没有问题。它在查看您试图访问的变量时遇到问题,因为这些变量是在构造函数中创建的局部变量,而不是存储为类本身的公共属性或字段。基本C#教程中介绍了这一点:您应该先了解其中的一些概念,这样您就不会被这样的基本语言概念所绊倒。错误是:错误CS1061:“Player”不包含“name”的定义,并且找不到接受“Player”类型的第一个参数的可访问扩展方法“name”(是否缺少using指令或程序集引用?)(CS1061)(TextRpg)但是以文本形式提供它仅仅公开是不够的,这些变量的声明必须移动到一个字段或属性而不是一个局部变量。为什么我不能在播放器类文件中写入public int health=100;并在程序类中找到带有点符号的文件?@Joakim,因为你没有考虑到变量的处理。正如我在对问题的评论中告诉你的,你需要通过一些C#教程,比如为了理解语言的基础知识。