2017-08-31 5 views
-1

は現在、私は暗黙のうちにeventOperation型付け:暗黙的に(var)を入力するのではなく、静的変数を明示的に入力するにはどうすればよいですか?

var eventOperation = EventOperations.Cancel;

をしかし、私はif文の前に任意の値を代入する必要がないように、私は明示的にeventOperationを入力します。さらに、if文内の変数を初期化することも、初期化されていない暗黙の型付き変数を持つこともできません。

public static class EventOperations 
{ 
    ... 
    public static OperationAuthorizationRequirement Cancel = 
     new OperationAuthorizationRequirement { Name = Constants.CancelOperationName }; 
} 

public class Constants 
{ 
    ... 
    public static readonly string CancelOperationName = "Cancel"; 
    ... 
} 
+0

「しかし、if文の前に任意の値を代入する必要がないように、eventOperationを明示的に入力してください。」作成しようとしているif文の例を示してください。 – mjwills

+1

あなたの問題が正確には不明です。ご指定ください。 – Maritim

+0

私は質問を得ることはよく分かりませんが、varはそのタイプの宣言があなたが割り当てるデータのタイプに関して自動的に行われるだけです。私は推測する...あなたは使用しているデータの種類を把握するためにVisual Studioツールを使用するだけですか? – Kinxil

答えて

3

EventOperations.Cancelは明らかにタイプOperationAuthorizationRequirementは次のとおりです。

は、ここで静的クラスの私の定義です。

var eventOperation = null as EventOperations; 

あなたはまだ(暗黙的に)VARを使用して変数を宣言したが、右側のデータ型を指定することができますこの方法なので、コンパイラ:だから、単にだろう

OperationAuthorizationRequirement eventOperation = EventOperations.Cancel; 
+0

これは機能します。私はそれを間違って指定しました。それは私に適切な修正を与えることなく名前空間エラーを与えていたので、私は何か他のものを考えました。ありがとう! – CCSJ

0

として別のアプローチをあなたの変数を宣言それを理解することができます。

UPDATE

あなたのオリジナルのポストはstatic変数の宣言を意味します。私はここで正しく用語を使用しているかどうかはわかりませんが、状況が少し変わる場合があります...

C#は静的ローカル変数をサポートしていないため、変数をstaticと宣言する必要がありますつまり、メソッド内ではなく、クラス内で直接実行することができます。

public class SomeClass 
{ 
    private static EventOperations eventOperation = null; 

    void SomeMethod() 
    { 
     if(true) 
     { 
      eventOperation = EventOperations.Cancel; // whatever value you set here, it'll be propagated to all the instances of some class. 
     } 
    } 
} 
関連する問題