2016-12-19 29 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