2015-11-18 91 views
0

我想从同一个函数返回两个不同的值,但事实证明,您只能返回1,但其他人也可以使用元组和外部参数......我不想不理解如何构造它们,语法很混乱。我尝试过多次尝试,通过反复试验,但每次程序甚至没有开始。如果你能向我展示一个非常感谢的解决方案。我设法返回字符串[]卡,但现在我需要了解我怎么可以从相同的功能来自同一函数的多个不同的返回类型

namespace Testing2._0 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string[] cards = ShuffleCardSystem(); 
      Dealing(cards); 
      Format(); 
      Console.ReadLine(); 

     } 
     static void Format() 
     { 
      //Not important 
     } 


     } 
     static string [] ShuffleCardSystem() 
     { 
      string[] ranks = new string[13] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" }; 
      int rankCounter = 0; 
      string []suits = new string[4] { "♠", "♣", "♦", "♥" }; 
      int suitsCounter = 0; 
      int shuffle; string temp; 
      Random rnd = new Random(); 
      int[] value = new int[52]; 
      string numbers = string.Empty; 
      int convert; 
      string[]cards = new string[52]; 
      for (int i = 0; i < 52; i++) 
      { 
       cards[i] = ranks[rankCounter] + suits[suitsCounter]; 
       rankCounter++; 
       if (rankCounter == 13) 
       { 
        rankCounter = 0; 
        suitsCounter += 1; 
       } 
      } 
      for (int i = 51; i >= 0; i--) 
      { 
        numbers= string.Empty; 
       shuffle = rnd.Next(0, i); 
       temp = cards[shuffle]; 
       cards[shuffle] = cards[i]; 
       cards[i] = temp; 
       for (int position =0; position<cards[i].Length; position++) 
       { 
        if (char.IsDigit(cards[i][position])) 
        { 
         numbers+=cards[i][position]; 
         convert= Convert.ToInt32(numbers); 
         value[i]= convert; 
         if (value[i] ==1) 
         { 
          value [i]=11; 
         } 

        } 
        if (cards[i].Any(char.IsLetter)) 
        { 
         value[i] = 10; 
        } 
       } 
      } 
      } 

      return cards; // I want to return value 

     } 
     static void Dealing(string[] cards) 
     { 
      //other unrelated code... 
       } 

      } 
     } 
    } 
} 
+2

你为什么不回班? –

+0

尝试返回对象数组。 –

回答

0
public class Shuffled 
{ 
public string[]cards{get;set;} 
public int[] values{get;set;} 
} 

C#是一种面向对象的语言返回INT []值。返回包含来自函数的数据的对象是很常见的。

static Shuffled ShuffleCardSystem() 
+0

对不起,不太了解这个概念,所以我创建了一个叫做shuffled的新类,然后将“string [] ShuffleCardSystem()”改为“static Shuffled ShuffleCardSystem()”?如果是这种情况,那么我怎么处理我的Main函数中的字符串[]卡声明? @ AD.Net –