タグ付けされた質問 「c#-6.0」

C#6.0は、Roslyn(.NETコンパイラプラットフォーム)およびVisual Studio2015と一緒に出荷されます。

1
ラムダ式でnull伝播演算子を使用できないのはなぜですか?
私はコードでnull伝播演算子をよく使用します。コードが読みやすくなるためです。特に、長いクエリでは、使用されるすべてのクラスをnullチェックする必要がないためです。 次のコードは、ラムダでnull伝播演算子を使用できないコンパイルエラーをスローします。 var cnt = humans.AsQueryable().Count(a => a.House?[0].Price == 5000); エラー : エラーCS8072式ツリーのラムダにnullの伝播演算子を含めることはできません。 C#は、実際には他に何もできない場合、上記のコードを次のコードに簡単に変換できます。 var cnt = humans.AsQueryable().Count(a => a.House != null && a.House[0].Price == 5000); C#が何もせず、単にコンパイラエラーをスローするのはなぜでしょうか。

1
プライマリコンストラクターがVS2015でコンパイルされなくなった
今日まで、次のようなプライマリコンストラクタを利用できました。 public class Test(string text) { private string mText = text; } これを行うには、以前のVisual Studio CTPで、これをcsproj-fileに追加する必要がありました。 <LangVersion>Experimental</LangVersion> とにかく、これはVisual Studio 2015プレビュー(の有無にかかわらずLangVersion)では機能しなくなりました。誰かが何が起こっているのかについて何か考えを持っていますか?


3
var paramなしのTryParse
C#6.0の新機能により、TryParseメソッド内で変数を宣言できます。私はいくつかのコードを持っています: string s = "Hello"; if (int.TryParse(s, out var result)) { } しかし、コンパイルエラーが表示されます。 私は何を間違っていますか?PS:プロジェクト設定でC#6.0と.NET Framework 4.6が設定されています。
93 c#  c#-6.0  c#-7.0 

2
Razorビューでの文字列補間?
これはサポートされていますか? もしそうなら、それを有効にするためのいくつかのトリックはありますか?Razorが十分に新しいコンパイラを使用していないと思います...?VS2015 IDEはそれで問題ないようですが、実行時に私は得ています CS1056:予期しない文字「$」
93 c#  asp.net-mvc  razor  c#-6.0 

9
キャッチブロックで待つ
私は次のコードを持っています: WebClient wc = new WebClient(); string result; try { result = await wc.DownloadStringTaskAsync( new Uri( "http://badurl" ) ); } catch { result = await wc.DownloadStringTaskAsync( new Uri( "http://fallbackurl" ) ); } 基本的にはURLからダウンロードしたいのですが、例外で失敗したら別のURLからダウンロードしたいです。もちろん、両方の時間は非同期です。ただし、コードはコンパイルされません。 エラーCS1985:catch句の本文で待機できません OK、なんらかの理由で禁止されていますが、ここでの正しいコードパターンは何ですか? 編集: 幸いなことに、C#6.0では、catchとfinallyブロックの両方で待機呼び出しが許可される可能性があります。

3
C#言語仕様6.0はどこにありますか?[閉まっている]
閉まっている。この質問は、StackOverflowのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、StackOverflowのトピックになります。 3年前に閉鎖されました。 この質問を改善する C#5言語仕様の場所はわかっていますが、C#6言語仕様がどこにも見つかりません。 C#6言語仕様はどこにありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.