我正在为Sifteo Cubes上的儿童制作游戏。我试图逐字逐句加载立方体。我对Sifteo Cubes有一些经验,但我怎么能以更漂亮的方式解决这个问题呢?如果可能的话,会更通用。
foreach (CubeWrapper wrapper in mWrappers) {
if (i == 0) {
wrapper.setWord (w1);
} else if (i == 1) {
wrapper.setWord (w2);
} else if (i == 2) {
wrapper.setWord (w3);
} else if (i == 3) {
wrapper.setWord (w4);
} else if (i == 4) {
wrapper.setWord (w5);
}
i++;
}
我将始终将w1添加到第一个包装器中,依此类推。
任何帮助将不胜感激!
答案 0 :(得分:4)
您可以执行以下操作:
Friend
此解决方案正常运行,但请注意,如果String[] words = new String[] {w1,w2,w3,w4,w5};
foreach (CubeWrapper wrapper in mWrappers)
{
wrapper.setWord(words[i++]);
}
数组小于words
集合,您将收到mWrappers
。因此,同步对阵列的访问权限就是您的工作。
答案 1 :(得分:0)
如果你不能\不想改变你的课程那么你可以用反射做这样的事情(尽管这可能不是正确的做法):
public class ABC
{
public int w1 { get; set; }
public int w2 { get; set; }
public int w3 { get; set; }
public ABC()
{
w1 = 7;
w2 = 8;
w3 = 9;
}
public void DoSomething()
{
var i = 1;
var name = "w" + (i + 1).ToString(); // w2
var value = (int)this.GetType().GetProperty(name).GetValue(this);
DoSomething(value);
}
public void DoSomething(int curr)
{
Console.WriteLine(curr); // 8
}
}
示例:
ABC abc = new ABC();
abc.DoSomething();
用法:
$('.filterMenu label').on('click', function () {
$('.galeria div').hide()
$('.galeria div[data-categories*="'+ $(this).data('id') +'"]').show();
});
答案 2 :(得分:0)
您可以使用像这样的Random类从数组中获取一个随机单词...
String[] words = new String[] { "w1", "w2", "w3", "w4", "w5" };
Random r = new Random(0);
int randomNumber = r.Next(0, words.Length);
foreach (CubeWrapper wrapper in mWrappers)
{
wrapper.setWord(words[randomNumber]);
}