c#,将类文件导入主程序文件
我从c#开始,在将类文件导入主文件时遇到问题。 在这一点上,我不明白为什么它不起作用 这是文件目录 这是主要节目 这是我想导入的另一个类,名为Player。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; }
当我尝试使用点符号时。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#教程,比如为了理解语言的基础知识。