我希望iOS和Android有不同的余量,所以我试图制作if / else但是当按钮在if / else里面时,找不到MyButton:
if (Device.RuntimePlatform == Device.iOS)
{
var MyButton = new Button
{
Margin = new Thickness(0, -15, 0, 0)
};
}
else
{
var MyButton = new Button
{
Margin = new Thickness(-10, -15, 0, 0)
};
}
var MyStackLayout = new StackLayout
{
Children = { MyButton }
};
当前上下文中不存在名称MyButton。 是否有解决方法或不同的方法?
答案 0 :(得分:2)
更改您的代码如下:
Button MyNewButton;
if (Device.RuntimePlatform == Device.iOS)
{
MyNewButton= new Button
{
Margin = new Thickness(0, -15, 0, 0)
};
}
else
{
MyNewButton= new Button
{
Margin = new Thickness(-10, -15, 0, 0)
};
}
var MyStackLayout = new StackLayout
{
Children = { MyNewButton}
};
在if body中定义变量时,无法访问if body。 如果您声明具有相同名称的变量(Mybutton),请更改此按钮名称。
答案 1 :(得分:0)
正如多次提到的那样,问题是MyButton
生活在一个错误的范围内。什么是范围?
变量的范围决定了它对其余部分的可见性 程序。在整个C#Fundamentals教程的示例中, 变量已在方法中定义。以这种方式创建时, 变量的范围是声明后的整个方法。 这意味着变量可以在方法中使用但是 当控制传递给另一个方法时,变量不可用。
您可以详细了解here。