在Xamarin中,我想使用Application对象存储数据和全局变量。
我查看了此资源以获取此代码: http://www.helloandroid.com/tutorials/maintaining-global-application-state
这是我的代码:
public class HelloApplication : Application
{
private int GlobalVariable = 1;
public int GetGlobalVariable()
{
return GlobalVariable;
}
public void SetGlobalVariable(int GlobalVariable)
{
this.GlobalVariable = GlobalVariable;
}
}
我正在尝试使用此代码引用该类:
((HelloApplication)GetApplication()).setGlobalVariable(10);
int variable=((HelloApplication)GetApplication()).getGlobalVariable();
当我构建应用程序时,我收到上述两行代码的错误:
当前上下文中不存在名称“GetApplication”
我能帮助您使用此代码吗?
修改
这是我的代码:
HelloApplication state = ((HelloApplication) this.ApplicationContext);
state.SetGlobalVariable(10);
int globalVariable = state.GetGlobalVariable ();
Toast.MakeText (this, "Global variable " + globalVariable, ToastLength.Short).Show ();
这是我得到的错误:
UNHANDLED EXCEPTION:System.InvalidCastException:无法从源类型转换为目标类型。
我可以帮忙解决这个问题吗?
答案 0 :(得分:2)
查看代码,您可以将变量设为公共静态。
public class HelloApplication : Application
{
public static int GlobalVariable = 1;
}
用法:
HelloApplication.GlobalVariable = 10;
答案 1 :(得分:1)
变化:
((HelloApplication)GetApplication())
到
((HelloApplication)GetApplicationContext())