2016-12-19 21 views
0

我使用C#开发的Windows物联网被安装在树莓派3。但是小UWP应用程序,我想这一点:从静态,C#做非静态的东西?

button.Visibility = Visibility.Visible; 
button1.Visibility = Visibility.Collpsed; 

该代码我想保持它的静态方法中: )。我还没有找到有用的答案。我希望你们能给我一个简单快捷的解决方案。

+1

你不能用非静态成员从静态方法中进行交互。如果你想这样做,你需要将一个实例传递给静态方法(或者以其他方式维护对实例的静态引用),此时你可能只需要使该方法非静态。 – CollinD

+0

@CollinD - 你的评论是一个答案,不是?为什么将它作为评论发布而不是答案? –

+0

如果'button'和'button1'是静态方法的参数,它可以工作。这是唯一的方法。 –

回答

4

如果你想使静态你必须在按键

public static void DoStuff(Button button, Button button1) 
{ 
    button.Visibility = Visibility.Visible; 
    button1.Visibility = Visibility.Collpsed; 
} 
0

作为第二选项,凯文已经足以回答过去,类似的可扩展方法来完成,如果你是一个工作按钮一次。您需要使用扩展方法所在名称空间的使用语句。

扩展方法是一种将实例方法添加到现有类的方法。

看到MSDN - Extension Methods

如:

public static class ButtonExtensions 
{ 
    public static void SetVisibility(this Button button, Visibility visibility) 
    { 
     button.Visibility = visibility; 
    } 
} 

用法:

public void Test() 
{ 
    Button button = new Button(); 
    Visibility visibility = Visibility.Collapsed; 

    button.SetVisibility(visibility); 

    //or 
    ButtonExtensions.SetVisibility(button, visibility); 
} 
+0

隐形downvotes没有解释,爱它! – WraithNath