在android主要活动中,我看到了两种类型的变量:在顶部声明的实例变量,以及在顶部声明的全局变量,因为它们没有通过使用“this”的活动引用,也没有有一个静态限定符。为什么有时使用实例变量,这些似乎是其他时候使用的“全局”变量?哪个更好用?从某种意义上说,它们似乎都是全局的,因为我认为只创建了一个MainActivity实例。
答案 0 :(得分:4)
如果字段未声明private void ShowMapBtn_Clicked(object sender, RoutedEventArgs e)
{
var mapContainer = MyMap.Parent as FrameworkElement;
MyMap.Width = mapContainer.ActualWidth;
MyMap.Height = mapContainer.ActualHeight;
//Hide the button
(sender as Button).Visibility = Visibility.Collapsed;
}
,则不是static
。实例字段可以与static
一起使用,也可以不与this
一起使用,因此可以使用instanceField
和this.instanceField
。
您应该将实例字段用于属于该类的各个实例的值。 static
字段不属于单个实例。
根据应用的工作方式,可能会同时存在多个同一Activity
课程的实例。对于许多应用程序,这是不可能的,在这种情况下,实例和static
字段之间的差异在某种程度上是学术性的。在这种情况下,我倾向于将实例字段用于可变状态,并将static
字段用于常量,例如static final int NUMBER_OF_LEVELS = 60;
。