2016-12-19 5 views
0

Я использую C# для разработки небольшой UWP приложение для Windows, IoT, который установлен на Raspberry Pi 3. Однако, я хочу это:Нестатические вещи из статического, 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

В качестве второго варианта к уже достаточному ответу Кевина, подобный может быть сделано с помощью методов расширения, если вы работаете с одним за один раз. Вам понадобится оператор 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); 
} 
+0

stealth downvotes без объяснений, любите его! – WraithNath