2012-10-23 143 views
-2

也许这可能会更清楚。该方法正在返回值......但在返回值后,我无法在程序的其余部分访问它。我对困难的部分发表了评论。如何将函数的返回值赋值给变量?

class CharacterStats 
{ 
    public int CharacterHitPoints() 
    { 
     int Health = 0;    
     Random rnd = new Random(); 
     Health = rnd.Next(30,70); 
     return (Health); 
    } 

    public int CharacterStrength() 
    { 
     int Strength = 0; 
     Random rnd = new Random(); 
     Strength = rnd.Next(1,20); 
     return (Strength); 
    } 
} 

class ApplicationObject 
{ 
    static void Main() 
    { 
     string CharName; 
     string KeepStats; 

     MonsterAttackRolls GoblinAttack = new MonsterAttackRolls(); 
     MonsterAttackRolls OrcAttack = new MonsterAttackRolls(); 
     MonsterAttackRolls OgreAttack = new MonsterAttackRolls(); 
     MonsterAttackRolls DragonAttack = new MonsterAttackRolls(); 

     MonsterHitPoints GoblinHealth = new MonsterHitPoints(); 
     MonsterHitPoints OrcHealth = new MonsterHitPoints(); 
     MonsterHitPoints OgreHealth = new MonsterHitPoints(); 
     MonsterHitPoints DragonHealth = new MonsterHitPoints(); 

     CharacterStats PlayerHealth = new CharacterStats(); 
     CharacterStats PlayerStrength = new CharacterStats(); 

     Console.WriteLine("Welcome to Realm, the top adventure game in the world! Please enter the name of your character if you wish to continue:"); 
     CharName = Console.ReadLine(); 

     Console.WriteLine("Welcome {0} to Realm! You will be given stats. They may be good or they may be bad.\nYou only get 2 rolls for your stats though, so pick wisely! From there you must fight 4 fearsome beasts.\n If you survive, you will win the game. If you die, well, you die. Press any key to continue.", CharName); 
     Console.ReadLine(); 

     Console.WriteLine("You will be given a strength number which augments your damage. Your strength can range from 1 - 20.\n A strength of 15 or over gives you a bonus to damage. A strength of 5 or less gives you a penalty. You will be start with a hit point number between 30-70. Good luck!"); 
     Console.ReadLine(); 

     Console.WriteLine("Your first set of stats is:\n Health = {0}.\nYour strength is {1}.\nIf you would like to roll again press 1. If you want to keep your stats press any other key.", PlayerHealth.CharacterHitPoints(), PlayerStrength.CharacterStrength()); 
     KeepStats = Console.ReadLine(); 

     if (KeepStats == "1") 
     { 
      Console.WriteLine("So you want a second set of stats. Okay.\n Your health is now: {0}.\n Your strength is now: {1}.", PlayerHealth.CharacterHitPoints(), PlayerStrength.CharacterStrength()); 
      Console.ReadLine(); 
     } 



     Console.WriteLine("Okay {0} you are ready to go. Good luck!\n. Once again, your stats are: Health: {1}\n Strength: {2}", CharName, //How do I access the return value? x 2?; 
     Console.ReadLine(); 
    } 







    } 
} 

凡评论是略高于此行是我想要把返回的值,并获得他们的程序的其余部分。

+4

'VAR MYVARIABLE =到Console.ReadLine();'??请遵循网络上的任何C#教程 –

+0

'var myVar = MyMethod();' – Leri

+0

我没有阅读网络教程。我被卡在教科书中第5章的方法上。我的搜索史蒂夫在C,Python中找到了例子,但不是在C#中。 –

回答

2
CharacterStats charObj = new CharacterStats(); 
int CharacterStrengthInt = charObj.CharacterStrength(); 
int CharacterHitPointsInt = charObj.CharacterHitPoints(); 

编辑:,因为你编辑的问题,使得它更加清晰。我相信你正在寻找以下。

您需要将返回值分配给代码中的某个变量,然后在Console.WriteLine中显示这​​些变量的值。否则他们将会丢失。

像下面这样的东西。

int CharacterStrengthInt = PlayerStrength.CharacterStrength(); 
int CharacterHitPointsInt = PlayerHealth.CharacterHitPoints(); 
if (KeepStats == "1") 
     { 
     Console.WriteLine("So you want a second set of stats. Okay.\n Your health is now: {0}.\n Your strength is now: {1}." 
     , CharacterHitPointsInt, CharacterStrengthInt); 
      Console.ReadLine(); 
     } 
+0

这没有奏效。这又称为函数。它没有将前一个方法的返回值赋给Main()中的一个变量。 –

+0

@MatthewOttewell,我不知道你是如何尝试。但是在你自己的代码中,你将一个方法的值赋给一个变量。看到“Health = rnd.Next”(30,70);' – Habib

+0

'我编辑了我的帖子以显示程序的完整代码(除了两个与此问题无关的其他类)。 –

4

你可以简单地调用

int strength = characterStatsObject.CharacterStrength() 

您创建了一个CharacterStats-对象后。

+0

我会试试这个。 –

+0

好的,我需要在函数或主代码中创建对象吗? –

+0

当你真的想要使用这个对象时,在你的主代码中。 – mboldt

2
CharacterStats objCS = new CharacterStats(); 
int CHP = objCS.CharacterHitPoints(); 
int CRS = objCS.CharacterStrength(); 

如果你这样做,在主句中,可以用两个变量

+1

不幸的是,这并没有奏效。 –