2016-12-19 3 views
0

私はこれにしたい、しかし、ラズベリーパイ3にインストールされているWindowsのIoT用の小さなUWPアプリを開発するためにC#を使用しています:スタティックからの非静的なもの、C#

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

私は、静的メソッドの内部でそれを維持したいとのコード: )。私はまだ役に立たない答えが見つかりませんでした。皆さんが私に簡単かつ迅速な解決策を提供してくれることを願っています。

+1

あなたは、静的メソッド内から非staticメンバーと対話することはできません。それをしたい場合は、静的メソッドにインスタンスを渡す必要があります(または、別の方法でインスタンスへの静的参照を維持する必要があります)。その時点で、メソッドを静的にするだけです。 – CollinD

+0

@CollinD - あなたのコメントは答えですか?なぜ答えの代わりにコメントとして投稿するのですか? –

+0

'button'と' button1'が静的メソッドのパラメータであれば動作します。それが唯一の方法です。 –

答えて

4

あなたがその静的を作りたい場合は、ボタンケビンさん、すでに十分な答えに2番目のオプションとして

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

に合格する必要がありますあなたが1で作業している場合は、同様に拡張メソッドで行うことができますボタンを一度に押します。拡張メソッドがある名前空間には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

説明なしでステルスdownvotes、それを愛する! – WraithNath

関連する問題