2017-02-20 10 views
-1

私の前のコードでは、私はビューで試してみます。私は最初にIDが空であるかヌルであるかをチェックしてから0に等しい値を設定する必要があると思うが、エラーが出て、ローカル変数へのアクセスが許可されていないと言う。しかし、if文の内部でvarのローカル変数にアクセスするにはどうすればよいですか?ifステートメントの外側でvarのローカル変数スコープを定義する方法は?

var Rs1; 
if (id != null) 
{ 
    Rs1 = _context.DwPropertyDetails.Select(x => new 
    { 
     Rs1Clm2 = totalTransAmount, 
     Rs1Clm3 = x.Studio), 
     Rs1Clm4 = x.OneBedroom), 
     Rs1Clm5 = x.TwoBedroom), 
     Rs1Clm6 = x.ThreeBedroom), 
     Rs1Clm7 = x.Total), 
    }); 
} 
else 
{ 
    Rs1 = _context.DwPropertyDetails.Select(x => new 
    { 
     Rs1Clm2 = 0, 
     Rs1Clm3 = 0, 
     Rs1Clm4 = 0, 
     Rs1Clm5 = 0, 
     Rs1Clm6 = 0, 
     Rs1Clm7 = 0, 
    }); 
} 
+0

実際の型は何? – ColinM

+3

'var Rs1;'は許可されていますか? –

+0

*匿名型* 'List 'で使用するための型を定義するための[醜い回避策](http://stackoverflow.com/a/4708589/1997232)があります。このようなシナリオでは、式の右側から抽出可能な型が必要なため、 'var'を使用することはできません。私は「ダイナミック」はそうすると信じていますが、インテリセンスのサポートがなければそれがあります。 – Sinatr

答えて

-1

なぜobjectの代わりvarでしょうか?

varを最初に暗黙的に入力する必要があります。しかし、型を持たないオブジェクトを割り当てるので、 'オブジェクト'だけを使うかもしれません。

など。 object Rs1;

+0

はい、スティーブン、あなたはこれを試してください – Lali

+0

ハハありがとう@mindOfAi私は迷子になった! –

+0

upvoteのやり方は?リンクはどこですか? –

2

varがそのタイプを推測する。値を代入しなければ、値の型を推論することはできません。

クラスまたは構造体を作成し、そこにフィールドを配置する必要があります。次に、作成されたクラスの型を使用します。

+0

hmm ..聞いてよかったです。あなたは私に例を挙げることができますか?お願いします。 –

+0

'var x =" a ";' "var"にカーソルを合わせると、 "string"と表示されます。 –

1

あなたは本当にVARを使用する場合:

var Rs1 = id != null ? 
      _context.DwPropertyDetails.Select(x => new 
       { 
        Rs1Clm2 = totalTransAmount, 
        Rs1Clm3 = x.Studio, 
        Rs1Clm4 = x.OneBedroom, 
        Rs1Clm5 = x.TwoBedroom, 
        Rs1Clm6 = x.ThreeBedroom, 
        Rs1Clm7 = x.Total, 
       }) 
      : _context.DwPropertyDetails.Select(x => new 
       { 
        Rs1Clm2 = 0, 
        Rs1Clm3 = 0, 
        Rs1Clm4 = 0, 
        Rs1Clm5 = 0, 
        Rs1Clm6 = 0, 
        Rs1Clm7 = 0, 
       }); 
+0

条件演算子を使用するのではなく、ヌル合体演算子を使用するだけではどうですか?同様に 'Rs1Clm3 = x?Studio ?? 0、 ' – ColinM

関連する問題