問題タブ [implicit-typing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
11256 参照

c# - 暗黙的に型指定された変数で配列初期化子を使用できないのはなぜですか?

暗黙的に型指定された変数で配列初期化子を使用できないのはなぜですか?

この制限の技術的な理由はありますか?次のようにタイプを推測できないのはなぜですか。

コンパイラは私が何をしようとしているのかを明確に知っていますが、それは許可されません。

CS0820:暗黙的に型指定されたローカルに配列初期化子を割り当てることができません


更新:4つの有効な配列宣言メソッドを使用してプログラムをコンパイルしましたが、同じILが生成されます:http://pastebin.com/28JDAFbL

これは私の混乱を増すだけです。そして、「仕様がそう言っているので、それはこのようなものです」はほとんど役に立ちません。なぜこのようなスペックなのですか?ここでの理論的根拠は何ですか?

0 投票する
7 に答える
15245 参照

c# - 条件付きスコープ内で暗黙的に型指定された変数を宣言し、それを外部で使用する

以下の簡略化されたコードでは、

変数 MyObject は、条件付きブロックの外ではアクセスできません。if..else の外で反復するにはどうすればよいですか?

0 投票する
2 に答える
775 参照

c# - テキスト テンプレートで匿名型を使用できますか?

テキスト テンプレートを作成しており、次のコード行があります。

これを匿名型の配列に変換したいと思います:

ただし、テキスト テンプレートは、単一の連続した関数のように見えますが、暗黙的に型指定されたローカル変数の使用を許可していません。

この制限を回避し、テキスト テンプレート内で匿名型を使用する簡単な方法はありますか?

0 投票する
2 に答える
256 参照

c# - VS2010 shows implicit variable to be of type 'var' instead of the actual type

I'm not sure if this is a bug or something else.

I create a new Web Application project in VS2010. In the project, I create a new class (Class1), with the following contents:

When I hover my mouse over s in the Console.WriteLine(s) line, a popup appears showing (local variable) string s. Great, just as I expect.

Correctly showing s to be of type string

Now, I add an App_Code folder to the project. Inside it, I again create a new class (Class2), with the exact same contents (except the class name). Now, when I hover s, it shows (local variable) var s.

Incorrectly showing s to be of type var

Why is it showing var in stead of string? Is this a bug? Can you reproduce this behavior?

It's even worse. If I move Class2.cs from the App_Code folder to the root of the project, VS2010 still doesn't show the type. Even after restarting VS2010 and reopening the project, VS2010 will show the correct type in Class1 but not in Class2. I've also tried deleting the .suo and .csproj.user files, but still no difference. Apparently VS2010 caches this information somewhere.

0 投票する
5 に答える
2328 参照

c# - 可能なのに暗黙の型(var)を使用する必要があるのはなぜですか?

重複の可能性:
C#3.0でのvarキーワードの利点

昨日、MSからの推奨事項に出くわしました。可能な場合は、varを使用する必要があります。

http://msdn.microsoft.com/en-us/library/ff926074.aspx

正しいタイプを使用すると、コードを文書化するのに役立ち、コンパイル時にバグを見つけるのにも役立つといつも思っていました。

この推奨の背後にある理由は何ですか?

最高のトーマス

0 投票する
4 に答える
2310 参照

c# - System.Data.Datarow の暗黙的な型指定のための C# var の使用

System.Data.DataTable標準(オブジェクトのコレクションを持つ) を使用していると仮定するとSystem.Data.DataRow、上記の変数 'row'は .objectではなく型として解決されSystem.Data.DataRowます。

私が期待するように動作します。これには特別な理由がありますか?

ありがとう。

0 投票する
1 に答える
415 参照

scala - Orderedを暗黙的に使用する

プログラムで使用される特定のタイプのラッパーを作成しようとしています。また、これらすべてのタイプに、特性Ordered [T]を実装することにより、compareメソッドを持たせたいと思います。比較対象の型がOrdred[T]を暗黙的に実装していると判断するcompareメソッドの作成に問題があります。

現在の試み:

これは私が望む構造ですが、エラーが発生し続けます:

私が見逃している構文はありますか?

0 投票する
3 に答える
1146 参照

c# - try...catch の暗黙的に型指定された変数

クリーンでシンプルなため、ほとんどすべてに暗黙の型付けを使用するのが好きです。ただし、try...catch ブロックを 1 つのステートメントにラップする必要がある場合は、変数が定義済みの値を持つようにするために、暗黙的な型指定を解除する必要があります。以下は、不自然な仮説の例です。

GetData()結果変数の型を明示的に定義しなくても、例外処理で呼び出す方法はありますか? みたいなGetData().NullOnException()

0 投票する
2 に答える
1354 参照

c# - 暗黙的に型指定された出力パラメーター

この質問と同様にout、型を定義することなく、メソッドから暗黙的に型指定された変数にパラメーターをプルできるかどうかを確認することにしました。私の理想的なソリューションは次のようになります。

この場合、CallMyMethod2 つの通常の入力変数、3 つoutのパラメーター、および戻り値があります。に渡されたデリゲートのセマンティクスに基づいてo1、 、o2o3、およびの型をコンパイラが自動的に決定するようにします。そのため、出力パラメーターの組み合わせごとに、いくつかのヘルパー デリゲートとメソッドを作成しました。3 つのパラメーターの例を次に示します。returnValueLiftOutParamout

理論的には、コンパイラはデリゲートのセマンティクスに基づいて、、、、および型T1を判別できるはずです。ただし、デリゲートの各パラメーターの型を指定しない限り、上記のコードはコンパイルされません。T2T3TReturn(out p1, out p2, out p3) => { return CallMyMethod(i1, i2, out p1, out p2, out p3); }out

私が達成しようとしていることを行う方法はありますか? outどこでも型を明示的に定義しなくても、パラメーターの値を暗黙的に型指定されたローカル変数にプルできる汎用ヘルパー メソッドを作成するには?