3

これを行うためのより速い方法はありますか?私は36の異なる写真を持っています、写真が変わるとき、私は画像を追跡する文字列を持っています(回転)、image1はrotation = 1などです、私がしなければならないことは次のようなステートメントの場合36を使用することです:

if (rotation == 1) //This is picture1
{

}
else if (rotation == 2) //This is picture2
{

}

までずっと:

else if (rotation == 36) //This is picture36
{

}

1行または2行のコードだけでそれがどのような回転であるかを理解する方法はありますか?そして、あなたが尋ねる前にチェックと言う人は誰でも、私はチェックしました、そして私は助けになるものを何も見つけませんでした、あなたが何かを見つけたら、ここにそれを投稿してください。

私のifステートメントの内部は、イメージを変更するためだけのものです。

ありがとう。

4

6 に答える 6

5

配列を使用する

picture = img[i];

または、実際にはインデックスにちなんで画像に名前image01.jpgを付けます(例などimage02.jpg

アレイは、最も拡張可能で簡潔なソリューションとして私を驚かせます。

于 2013-02-07T13:50:52.033 に答える
2

たとえば、回転を印刷する場合は、内側に言います。

if (rotation == 1) //This is picture1
{
   System.out.println(1);
}
else if (rotation == 2) //This is picture2
{
    System.out.println(2);
}


else if(rotation==36)
{
    System.out.println(36);
}

コード全体を1行に変更できます。

System.out.println(rotation);
于 2013-02-07T13:58:08.327 に答える
1

、、、、またはWhateverYourPictureClassIsステートメントの配列を使用できます。IDictionary<int,WhateverYourPictureClassIs>switch

たとえば、画像情報が文字列の場合:

string[] pictures = {
  "you might have a blank entry here if the first number is 1 instead of 0",
  "picture1",
  "picture2",
  "picture3",
  "picture4",
  // ...and so on...
};

次に、写真を見上げると

if (picture >= 0 && picture < pictures.Length) { // The 0 might be 1 in your case
    pictureInfo = pictures[picture];
}

または

IDictionary<int,string> pictures = new Dictionary<int,string>();
pictures.Add(1, "picture1");
// ...and so on...

見上げるのはほとんど同じです。

または

switch (picture) {
    case 1: pictureInfo = "picture1"; break;
    case 2: pictureInfo = "picture2"; break;
    // ...and so on...
}
于 2013-02-07T13:48:21.450 に答える
1

これはロングショットであり、画像ファイルの名前は常に以下に示すように回転値に対応すると想定しています。

回転=1----->ファイル名=image1.png
回転=2----->ファイル名=image2.png

もしそうなら、あなたはこれを行うことができます

string fileName = "image" + rotation + ".png";

これを使用して、必要な方法でファイルを選択または表示できます。

于 2013-02-07T13:56:35.973 に答える
0

switchステートメント。

http://www.dotnetperls.com/if-switch-performance

switch(number)
{
  case 1:

    break;
}

または、あなたが持っている場所があるList<T>場合-この場合Tはあなたができるあなたの写真です

List<T> pictures = new List<T>();
T picture = pictures[rotation];
于 2013-02-07T13:49:43.320 に答える
0

最良の方法は、文字列の代わりにintを使用することです。その後、を使用できますswitch case

Java 7では、switchステートメントで文字列を使用できます。C#で使用できるかどうかはわかりません。

于 2013-02-07T13:49:45.130 に答える