有没有一种方法可以将这段代码重构为一个语句:
// Following line used referenced only once
public static Color[] TabBarBackgroundColor = { greyEF, grey00, grey00 };
// Here's where it's referenced
Current.Resources["TabBarBackgroundColor"] = Styles.TabBarBackgroundColor[thc];
答案 0 :(得分:2)
如果不初始化静态变量:
Current.Resources["TabBarBackgroundColor"] = (new[]{ greyEF, grey00, grey00 })[thc];
或者您甚至不需要数组来显示帖子中显示的值:
Current.Resources["TabBarBackgroundColor"] = thc == 0 ? greyEF : grey00;
如果确实需要延迟初始化静态变量:
public static Color[] TabBarBackgroundColor = null;
Current.Resources["TabBarBackgroundColor"] =
(TabBarBackgroundColor == null ?
TabBarBackgroundColor = (new[]{ greyEF, grey00, grey00 }) :
TabBarBackgroundColor)[thc];
请注意,它看起来更像refucktoring,我不建议您使用其他人需要阅读的代码来这样做。