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

10
事前定義されたタイプ 'System.ValueTuple´2´は定義またはインポートされていません
Visual Studio 15 Preview 3をインストールし、新しいタプル機能を使用しようとしました static void Main(string[] args) { var x = DoSomething(); Console.WriteLine(x.x); } static (int x, int y) DoSomething() { return (1, 2); } コンパイルするとエラーが発生します。 事前定義されたタイプ 'System.ValueTuple´2´は定義またはインポートされていません ブログの投稿によると、この機能はデフォルトで「オン」になっているはずです。 何を間違えたのですか?

2
「x is null」と「x == null」の違いは何ですか?
C#7では、 if (x is null) return; の代わりに if (x == null) return; 古い方法よりも新しい方法(以前の例)を使用する利点はありますか? セマンティクスは異なりますか? 好みの問題ですか?そうでない場合、いつどちらを使用すればよいですか? 参考:C#7.0の新機能。

4
ローカル関数とLambda C#7.0
C#7.0の新しい実装を見ていて、ローカル関数が実装されているのは興味深いのですが、ローカル関数がラムダ式よりも優先されるシナリオと、その2つの違いは想像できません。 ラムダはanonymous関数ですがローカル関数はそうでないことを理解していますが、ローカル関数がラムダ式よりも優れている実際のシナリオを理解できません どんな例でも大歓迎です。ありがとう。
178 c#  function  lambda  c#-7.0 

2
Visual Studio 2015でC#7を使用する方法
OverаэтотвопросестьответынаStack Overflowнарусском:МожнолииспользоватьC#7.0 VS VSстарее2017? Visual Studio 2017(15.x)はC#7をサポートしていますが、Visual Studio 2015(14.x)はどうですか? C#7をどのように使用できますか?

6
System.ValueTupleとSystem.Tupleの違いは何ですか?
いくつかのC#7ライブラリを逆コンパイルし、ValueTupleジェネリックが使用されているのを見ました。代わりに何でValueTuples、なぜそうしないのTupleですか? https://docs.microsoft.com/en-gb/dotnet/api/system.tuple https://docs.microsoft.com/en-gb/dotnet/api/system.valuetuple
139 c#  .net  tuples  c#-7.0 

2
奇数の戻り構文ステートメント
これは奇妙に聞こえるかもしれませんが、インターネットでこの構文を検索する方法もわかりません。また、正確な意味がわかりません。 だから私はいくつかのMoreLINQコードを見てきました、そして私はこの方法に気づきました public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer) { if (source == null) throw new ArgumentNullException(nameof(source)); if (keySelector == null) throw new ArgumentNullException(nameof(keySelector)); return _(); IEnumerable<TSource> _() { var knownKeys = new HashSet<TKey>(comparer); foreach (var element in source) { if (knownKeys.Add(keySelector(element))) yield return element; …
106 c#  .net  c#-7.0 

4
Visual Studio 2017およびC#7.0を使用してメソッドからタプルを返すことができない
1週間前にリリースされたVisual Studio 2017 Communityをインストールし、C#7の新機能を探索し始めました。 そこで、2つの値を返す単純なメソッドを作成しました。 public class Program { public static void Main(string[] args) { (int sum, int count) a = ReturnTwoValues(); } static (int sum, int count) ReturnTwoValues() => (1, 1); } コンパイラがエラーを生成しています: エラーCS8137コンパイラに必要なタイプ「System.Runtime.CompilerServices.TupleElementNamesAttribute」が見つからないため、タプルを利用するクラスまたはメンバーを定義できません。参照がありませんか? 私はフレームワークでこの名前のリファレンスを見つけようとしましたが、うまくいきませんでした! C#7.0の機能を使用するために追加のものが必要な場合、すべてのプロジェクトでそれを行う必要があるのは非常に奇妙です。

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
C#では、名前を持つ値タプルのエイリアスを定義できますか?
usingキーワードを使用してC#でエイリアスを定義できることは知っています。 例えば using ResponseKey = System.ValueTuple<System.Guid, string, string>; ただし、値タプルの新しい構文を使用して定義することは可能ですか? using ResponseKey = (Guid venueId, string contentId, string answer); この構文は機能していないようです。それをすべきですか?
92 c#  c#-7.0 

3
var / nullの奇妙な動作で切り替える
次のコードがあるとします: string someString = null; switch (someString) { case string s: Console.WriteLine("string s"); break; case var o: Console.WriteLine("var o"); break; default: Console.WriteLine("default"); break; } switchステートメントが一致するのはなぜcase var oですか? (事実上)falseと評価されるため、case string s一致しないのは私の理解です。VS CodeのIntelliSense は、それも同様であると教えてくれます。何かご意見は?s == null(null as string) != nullostring 似ている:nullチェック付きのC#7スイッチケース
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.