2012-05-05 13 views
1

私はC#XNAを使用してゲームを作成しています。
私はこのようなint[,]配列に格納されたタイルマップを持っている:メソッド内でint [、]を返すにはどうすればよいですか?

int[,] Map = 
    { 
     {1, 1, 1, 1, 1, 1, 1, 1 }, 
     {1, 1, 1, 1, 1, 1, 1, 1 }, 
     {1, 1, 1, 1, 1, 1, 1, 1 }, 
    }; 

私は私のクラスのコンストラクタで配列Map[,]のこのタイプを受け入れるとさえ方法で可能な場合は、配列を返すことができますどのように興味?私はint[,]を返すようにしたい

ちょうどこのように:

public int[,] GetMap() 
    { 
     return 
    int[,] Map1 = 
    { 
     {1, 1, 1, 1, 1, 1, 1, 1 }, 
     {1, 1, 1, 1, 1, 1, 1, 1 }, 
     {1, 1, 1, 1, 1, 1, 1, 1 }, 
    };; 
    } 
+10

は、あなたがそれを試みたことがありますか?何を試しましたか?エラーは何ですか? –

+0

この記事を読む:http://msdn.microsoft.com/en-us/library/1h3swy84.aspx – Euphoric

答えて

2

私はあなたがこれをしたいと思う:

public int[,] GetMap() 
{ 
    return new [,] 
    { 
     {1, 1, 1, 1, 1, 1, 1, 1 }, 
     {1, 1, 1, 1, 1, 1, 1, 1 }, 
     {1, 1, 1, 1, 1, 1, 1, 1 }, 
    }; 
} 

も使用できます

public int[,] GetMap() 
{ 
    int [,] map = new [,] 
    { 
     {1, 1, 1, 1, 1, 1, 1, 1 }, 
     {1, 1, 1, 1, 1, 1, 1, 1 }, 
     {1, 1, 1, 1, 1, 1, 1, 1 }, 
    }; 

    return map; 
} 
+0

ありがとう、これは私が探していたものです。 – user1376460

1
void Method(int[,] map) 
{ 
    // use map here 
} 

int[,] MethodWithReturn() 
{ 
    // create Map here 
    return Map; 
} 
+0

どうすれば配列を返すことができますか? – user1376460

+0

@ user1376460 Errr ...あなたは 'return map;'を試しましたか?あなたは何を試していますか、何の問題がありますか?コードとエラーメッセージを投稿してください。 –

+0

あなたは私の質問を誤解しているかもしれません。 – user1376460

0
public int[,] GetMap() 
{ 
    int[,] map = new int[,] 
    { 
     {1, 1, 1, 1, 1, 1, 1, 1 }, 
     {1, 1, 1, 1, 1, 1, 1, 1 }, 
     {1, 1, 1, 1, 1, 1, 1, 1 }, 
    }; 

    return map; 
} 

多次元配列で暗黙の宣言を使用することはできません。したがって、まず配列を宣言してから返す必要があります。

+0

それは純粋に間違っています。あなたはすぐにそれを返すことができます。 – SimpleVar

+0

あなたは正しいかもしれません。私はあなたがこのようにvarを使うことはできないという事実を知っていますが、多分返品は許されます。 – Chris

+0

あなたは私を信じる必要はありません。ただそれを試してみてください。 – SimpleVar

0

あなたは確かに行うことができます。

return new int[,] 
      { 
       {1, 1, 1, 1, 1, 1, 1, 1}, 
       {1, 1, 1, 1, 1, 1, 1, 1}, 
       {1, 1, 1, 1, 1, 1, 1, 1} 
      }; 

しかし、あなたはその後...あなたが境界を知っていない場合は、外部から[、]あなたはint型を扱うだろうかについて尋ねている場合:

を外部から
private static int[,] CreateMap(out int height) 
{ 
    height = 3; 

    return new int[,] 
       { 
        {1, 1, 1, 1, 1, 1, 1, 1}, 
        {1, 1, 1, 1, 1, 1, 1, 1}, 
        {1, 1, 1, 1, 1, 1, 1, 1} 
       }; 
} 

使用法:

int height; 
int[,] map = CreateMap(out height); 

int width = map.Length/height; 

for (int i = 0; i < height; i++) 
{ 
    for (int j = 0; j < width; j++) 
    { 
     Console.WriteLine(map[i, j]); 
    } 
} 
関連する問題