C# Android Chronometer有.start()和.stop(),但没有.get/setBase()
已为VS15社区安装xamarin 类正在使用Android.Widget Chronometer在Android.Widget.Chronometer中 在第6行和第11行,我得到“不包含方法的定义”错误: “Chronometer”不包含“setBase”的定义,并且找不到接受“Chronometer”类型的第一个参数的扩展方法“setBase”(是否缺少using指令或程序集引用?) 但计时表确实有.Start()和.Stop()的定义。为什么没有挫折 然而 注意,这些方法应该是小写的:.start()和.stop() 我不确定从哪里开始寻找参考/使用问题C# Android Chronometer有.start()和.stop(),但没有.get/setBase(),c#,android,visual-studio,xamarin,mono,C#,Android,Visual Studio,Xamarin,Mono,已为VS15社区安装xamarin 类正在使用Android.Widget Chronometer在Android.Widget.Chronometer中 在第6行和第11行,我得到“不包含方法的定义”错误: “Chronometer”不包含“setBase”的定义,并且找不到接受“Chronometer”类型的第一个参数的扩展方法“setBase”(是否缺少using指令或程序集引用?) 但计时表确实有.Start()和.Stop()的定义。为什么没有挫折 然而 注意,这些方法应该是小写的:.
Chronometer chrono = FindViewById<Chronometer>(Resource.Id.chronometer1);
var chronoActionButton = FindViewById<Button>(Resource.Id.btnStopwatchController);
chronoActionButton.Text = (!isRunning) ? Resources.GetString(Resource.String.stopwatchconrollerButton_text, "Start") : Resources.GetString(Resource.String.stopwatchconrollerButton_text, "Stop");
chronoActionButton.Click += (object sender, System.EventArgs e) => {
if (!isRunning) {
chrono.setBase(SystemClock.ElapsedRealtime() + timeWhenStopped);
isRunning = true;
chronoActionButton.Text = Resources.GetString(Resource.String.stopwatchconrollerButton_text, "Stop");
chrono.Start();
} else {
timeWhenStopped = chrono.getBase() - SystemClock.ElapsedRealtime();
isRunning = false;
chronoActionButton.Text = Resources.GetString(Resource.String.stopwatchconrollerButton_text, "Start");
chrono.Stop();
}
};
Chronometer chrono=findviewbyd(Resource.Id.Chronometer 1);
var chronoActionButton=findviewbyd(Resource.Id.btnStopwatchController);
chronoActionButton.Text=(!正在运行)?Resources.GetString(Resource.String.stopwatchconrollerButton_文本,“开始”):Resources.GetString(Resource.String.stopwatchconrollerButton_文本,“停止”);
计时操作按钮。单击+=(对象发送者,System.EventArgs e)=>{
如果(!正在运行){
计时设置(SystemClock.ElapsedRealtime()+停止时的时间);
isRunning=true;
chronoActionButton.Text=Resources.GetString(Resource.String.stopwatchconrollerButton_Text,“停止”);
chrono.Start();
}否则{
timeWhenStopped=chrono.getBase()-SystemClock.ElapsedRealtime();
isRunning=false;
chronoActionButton.Text=Resources.GetString(Resource.String.stopwatchconrollerButton_Text,“开始”);
计时停止();
}
};
Xamarin通常将方法和属性名称转换为更标准的C#约定-大小写混合而不是小写,使用属性名称而不是get/set方法
因此,getBase和setBase被转换为具有getter和setter的单个Base属性
请参阅:计时器具有基本属性。因此,您只需键入
chrono.Base
,而不是chrono.GetBase()
,谢谢您的快速响应!1个问题:我如何知道什么时候应该参考Android的文档或Xamarin的文档?在大多数情况下,只要记住C#等价物是什么,您可以参考这两个文档。还有关于其他语言差异的更多细节。