从静态,C#做非静态事物?

时间:2016-12-19 16:16:29

标签: c# visual-studio raspberry-pi3 windows-10-iot-core

我正在使用c#开发一个安装在Raspberry pi 3上的Windows IoT的小型UWP应用程序。但是,我想这样:

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

我希望将代码保存在静态方法中:)。我还没有找到任何有用的答案。我希望你们能给我一个简单快捷的解决方案。

2 个答案:

答案 0 :(得分:4)

如果你想要那个静态,你必须传递按钮

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

答案 1 :(得分:0)

作为Kevin已经足够答案的第二个选项,如果您一次只使用一个按钮,则可以使用扩展方法进行类似操作。您将需要扩展方法所在的命名空间的using语句。

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

请参阅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);
}