我使用C#開發的Windows物聯網被安裝在樹莓派3。但是小UWP應用程序,我想這一點:從靜態,C#做非靜態的東西?
button.Visibility = Visibility.Visible;
button1.Visibility = Visibility.Collpsed;
該代碼我想保持它的靜態方法中: )。我還沒有找到有用的答案。我希望你們能給我一個簡單快捷的解決方案。
我使用C#開發的Windows物聯網被安裝在樹莓派3。但是小UWP應用程序,我想這一點:從靜態,C#做非靜態的東西?
button.Visibility = Visibility.Visible;
button1.Visibility = Visibility.Collpsed;
該代碼我想保持它的靜態方法中: )。我還沒有找到有用的答案。我希望你們能給我一個簡單快捷的解決方案。
如果你想使靜態你必須在按鍵
public static void DoStuff(Button button, Button button1)
{
button.Visibility = Visibility.Visible;
button1.Visibility = Visibility.Collpsed;
}
作爲第二選項,凱文已經足以回答過去,類似的可擴展方法來完成,如果你是一個工作按鈕一次。您需要使用擴展方法所在名稱空間的使用語句。
擴展方法是一種將實例方法添加到現有類的方法。
如:
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);
}
隱形downvotes沒有解釋,愛它! – WraithNath
你不能用非靜態成員從靜態方法中進行交互。如果你想這樣做,你需要將一個實例傳遞給靜態方法(或者以其他方式維護對實例的靜態引用),此時你可能只需要使該方法非靜態。 – CollinD
@CollinD - 你的評論是一個答案,不是?爲什麼將它作爲評論發佈而不是答案? –
如果'button'和'button1'是靜態方法的參數,它可以工作。這是唯一的方法。 –