C# 在类中保存值以供以后使用
我对c#相当陌生,所以我不确定在这里该做什么,我想把一个值从一个类保存到另一个类。这很难解释,但这就是我得到的。(我知道这里很乱)C# 在类中保存值以供以后使用,c#,C#,我对c#相当陌生,所以我不确定在这里该做什么,我想把一个值从一个类保存到另一个类。这很难解释,但这就是我得到的。(我知道这里很乱) 职业英雄{ 私人单位装甲=0; 公共int装甲 { 获取{返回_装甲;} 设置 { 如果(值=20) { _装甲=20; } 其他的 { _装甲=价值; } } } } 所以我想要的是增加英雄护甲5,如walking()方法所示。然后,我想把这5件盔甲添加到我的英雄职业中,保存它的价值,然后用它做我想做的事情。我希望这是有意义的,因为这对我来说肯定不是每次创建类的
职业英雄{
私人单位装甲=0;
公共int装甲
{
获取{返回_装甲;}
设置
{
如果(值=20)
{
_装甲=20;
}
其他的
{
_装甲=价值;
}
}
}
}
所以我想要的是增加英雄护甲5,如walking()方法所示。然后,我想把这5件盔甲添加到我的英雄职业中,保存它的价值,然后用它做我想做的事情。我希望这是有意义的,因为这对我来说肯定不是每次创建类的新实例时,都会有一个新实例。对任何其他实例所做的更改都不会出现在新实例中 考虑一个类比。。。一辆汽车驶离工厂的生产线。当它从工厂出来时,你把一个袋子放在后备箱里。片刻之后,另一辆同样的车从工厂里出来。它在各个方面都与第一个完全相同。如果你打开第二辆车的行李箱,你会在那里找到你的包吗 您有几个选择:
静态
值是第三个选项。但该选项在这里似乎没有多大意义。对于所有“英雄”对象,您不会有一个单独的“护甲”值。每个对象都有自己的值。)
你想走哪个方向取决于你自己。第一种方法的最简单示例可能是将对象传递给方法。比如:
var myHero = new Hero();
myHero.Armor += 5;
SomeMethod(myHero);
// elsewhere...
void SomeMethod(Hero aHero)
{
// here, "aHero" has an armor increased by 5
}
当然,上面的第二个选项会稍微复杂一些,因为您需要编写保存和恢复状态的代码。这将是一个开始使用数据库的好机会。实体框架(Entity Framework)等框架在代码中轻松实现了这一点,一旦您了解了数据库是什么以及如何设置数据库的学习过程。每次创建类的新实例时,您都有一个新实例。对任何其他实例所做的更改都不会出现在新实例中 考虑一个类比。。。一辆汽车驶离工厂的生产线。当它从工厂出来时,你把一个袋子放在后备箱里。片刻之后,另一辆同样的车从工厂里出来。它在各个方面都与第一个完全相同。如果你打开第二辆车的行李箱,你会在那里找到你的包吗 您有几个选择:
静态
值是第三个选项。但该选项在这里似乎没有多大意义。对于所有“英雄”对象,您不会有一个单独的“护甲”值。每个对象都有自己的值。)
你想走哪个方向取决于你自己。第一种方法的最简单示例可能是将对象传递给方法。比如:
var myHero = new Hero();
myHero.Armor += 5;
SomeMethod(myHero);
// elsewhere...
void SomeMethod(Hero aHero)
{
// here, "aHero" has an armor increased by 5
}
当然,上面的第二个选项会稍微复杂一些,因为您需要编写保存和恢复状态的代码。这将是一个开始使用数据库的好机会。实体框架(Entity Framework)等框架在代码中轻松实现了这一点,一旦您了解了数据库是什么以及如何设置数据库的学习过程。您必须在Walk方法之外创建一个Hero实例。大概是这样的:
public static void Main()
{
var hero = new Hero();
hero.Walk();
Console.WriteLine(String.Format("Current Armo: {0}", hero.Armor));
hero.Walk();
Console.WriteLine(String.Format("Current Armo: {0}", hero.Armor));
}
public class Hero
{
public int Armor { get; set; }
public void Walk()
{
this.Armor += 5;
}
}
string armor= System.IO.File.ReadAllText(@"C:\file.txt");
此处运行的代码:
祝你好运你必须在Walk方法之外创建一个英雄实例。大概是这样的:
public static void Main()
{
var hero = new Hero();
hero.Walk();
Console.WriteLine(String.Format("Current Armo: {0}", hero.Armor));
hero.Walk();
Console.WriteLine(String.Format("Current Armo: {0}", hero.Armor));
}
public class Hero
{
public int Armor { get; set; }
public void Walk()
{
this.Armor += 5;
}
}
string armor= System.IO.File.ReadAllText(@"C:\file.txt");
此处运行的代码:
祝你好运,所以你应该知道我们有三种存储方式 如果后者可以是关闭应用程序后的任何时间,或者。。。你应该使用数据库(或者开始学习我提供给你的) 像这样:
string file_name = "c:\\file.txt";
System.IO.StreamWriter objWriter;
objWriter = new System.IO.StreamWriter(file_name, true);
objWriter.Write(armor);
在这里,您可以将您的护甲写入一个文件,并且您可以在每次需要时这样做:
public static void Main()
{
var hero = new Hero();
hero.Walk();
Console.WriteLine(String.Format("Current Armo: {0}", hero.Armor));
hero.Walk();
Console.WriteLine(String.Format("Current Armo: {0}", hero.Armor));
}
public class Hero
{
public int Armor { get; set; }
public void Walk()
{
this.Armor += 5;
}
}
string armor= System.IO.File.ReadAllText(@"C:\file.txt");
所以你可以用这两个步骤来指导你的课堂;或设置;护甲值
另外两种存储数据的方法是中长缓存或将数据存储在类的对象中(如David所回答),直到您没有关闭应用程序为止。所以您应该知道我们有3种存储方式 如果后者可以是关闭应用程序后的任何时间,或者。。。你应该使用数据库(或者开始学习我提供给你的) 像这样:
string file_name = "c:\\file.txt";
System.IO.StreamWriter objWriter;
objWriter = new System.IO.StreamWriter(file_name, true);
objWriter.Write(armor);
在这里,您可以将您的护甲写入一个文件,并且您可以在每次需要时这样做:
public static void Main()
{
var hero = new Hero();
hero.Walk();
Console.WriteLine(String.Format("Current Armo: {0}", hero.Armor));
hero.Walk();
Console.WriteLine(String.Format("Current Armo: {0}", hero.Armor));
}
public class Hero
{
public int Armor { get; set; }
public void Walk()
{
this.Armor += 5;
}
}
string armor= System.IO.File.ReadAllText(@"C:\file.txt");
所以你可以用这两个步骤来指导你的课堂;或设置;护甲值
另外两种存储数据的方法是缓存中长时间,或者将数据存储在类的对象中(如David Answer所述),直到您没有关闭应用程序为止