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

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



5
C#6.0は.NET 4.0で動作しますか?
私はサンプルプロジェクトを作成しましたが、C#6.0の利点があります-例としてnullの伝播とプロパティの初期化を行い、ターゲットバージョン.NET 4.0を設定すると動作します。 public class Cat { public int TailLength { get; set; } = 4; public Cat Friend { get; set; } public string Mew() { return "Mew!"; } } class Program { static void Main(string[] args) { var cat = new Cat {Friend = new Cat()}; Console.WriteLine(cat?.Friend.Mew()); Console.WriteLine(cat?.Friend?.Friend?.Mew() ?? …
275 c#  .net  c#-6.0 

16
nameofの目的は何ですか?
バージョン6.0にはの新機能nameofがありますが、変数名を取得してコンパイル時に文字列に変更するだけなので、目的を理解できません。 私はそれを使用するときにいくつかの目的があるかもしれないと思ったが<T>、nameof(T)それをしようとするとT、使用されたタイプの代わりに私を表示するだけです。 目的について何か考えはありますか?
263 c#  .net  c#-6.0  nameof 

6
プロパティシグネチャのC#での=>割り当てとは
私は言ったいくつかのコードに出くわしました public int MaxHealth => Memory[Address].IsValid ? Memory[Address].Read<int>(Offs.Life.MaxHp) : 0; 今、私はラムダ式にある程度精通しています。私はそれがこのようにそれを使用するのを見たことがありません。 上記のステートメントとの違いは何でしょうか public int MaxHealth = x ? y:z;
229 c#  c#-6.0 

6
Visual Studio 2013でC#6.0機能を有効にする方法は?
私はC#6.0で導入された最新の機能を試していて、自動プロパティ初期化子の例に従いました。 class NewSample { public Guid Id { get; } = Guid.NewGuid(); } しかし、私のIDEは構文を認識しませんでした。 Visual Studio 2013でC#6.0を有効にするにはどうすればよいかと思います。使用しているターゲットフレームワークは4.5.1です。

6
Visual Studio 2015でC#6サポートを無効にするにはどうすればよいですか?
バックグラウンド C#6を有効にしてVS 2015で開発しているプロジェクトがあり、C#6を使用せずにVS 2013を使用する開発者がプロ​​ジェクトを開く必要がある場合があります。 この特定のソリューション内でC#6を使用するつもりはありません(私が望むだけ)。 問題 Visual StudioとReSharperは、C#6がサポートされていない以前のバージョンのVisual Studioでソリューションを動作不能にする有用なC#6言語構成を提案しています。 私がしましたReSharperのC#6のサポートを無効にしますが、私はC#は、ソリューション全体を越えています/無効の上限に見えることはできません。 質問 ソリューション内またはVisual Studio 2015内でC#をC#5機能に制限するにはどうすればよいですか?

7
C#6.0の機能がVisual Studio 2015で機能しない
Visual Studio 2015をC#6.0でテストしていますが、言語機能が動作していません。MVC Webアプリケーションでは、次のコードがコンパイルされます。 if (!string.IsNullOrWhiteSpace(Model.Profile?.TypeName)) { // More logic here... } しかし、DebugおよびIIS Expressを介してアプリケーションを実行すると、次のエラーが発生します。 CS1525:無効な式用語 '。' これらの機能を有効にするにはどうすればよいですか?

5
C#6の長い文字列補間線
文字列の補間は、既存のコードベースの文字列Format呼び出しに適用すると非常に便利ですが、一般的に推奨される列の制限を考えると、文字列は1行では急速に長くなりすぎます。特に、補間される式が複雑な場合。書式文字列を使用すると、複数の行に分割できる変数のリストがあります。 var str = string.Format("some text {0} more text {1}", obj1.property, obj2.property); 誰かがこれらのラインを分割するための好ましい手段を持っていますか? 私はあなたが次のようなことをすることができると思います: var str = $"some text { obj1.property }" + " more text { obj2.property };
134 c#  c#-6.0 

6
計画されている「プライベート保護された」C#アクセス修飾子の意味は何ですか?
GitHub のRoslynドキュメントの一部として、C#とVBの言語機能が計画されている、言語機能の実装ステータスというページがあります。 私の頭を包むことができなかった1つの機能は、private protectedアクセス修飾子でした。 private protected string GetId() { … } C#言語のデザインノートのページもあります。このページには、多くの新機能が説明されていますが、これは説明されていません。 エリックリッパートはコメントで言った: あなたの過ちは、修飾子を制限の増加として考えることです。実際、修飾子は常に制限を減らします。デフォルトでは「プライベート」であることに注意してください。修飾子を追加するだけで、制限が緩和されます。 の意味はprivate protected何ですか?いつ使用できますか?

1
逐語的文字列を補間でどのように使用しますか?
C#6には、補間された文字列という新しい機能があります。 これらを使用すると、インデックスに依存するのではなく、式をコードに直接配置できます。 string s = string.Format("Adding \"{0}\" and {1} to foobar.", x, this.Y()); になる: string s = $"Adding \"{x}\" and {this.Y()} to foobar."; ただし、次のように逐語的文字列(主にSQLステートメント)を使用して、複数行にわたって多くの文字列があります。 string s = string.Format(@"Result... Adding ""{0}"" and {1} to foobar: {2}", x, this.Y(), x.GetLog()); これらを通常の文字列に戻すのは面倒です: string s = "Result...\r\n" + $"Adding \"{x}\" and {this.Y()} to foobar:\r\n" …

7
WebサイトプロジェクトタイプでC#6を使用する方法
既存のWebサイトを更新しましたプロジェクトタイプVisual Studio 2015を、フレームワークを4.6に変更しました。 次に、コードビハインドファイルでこれらの新機能をすべて利用できるようにする予定でした。 残念ながら、次のようなエラーが発生します。 エラーCS8026:機能 'expression-bodied property'はC#5では使用できません。言語バージョン6以降を使用してください。 または例: エラーCS8026:機能「補間された文字列」はC#5では使用できません。言語バージョン6以降を使用してください。 私は簡単なGoogleチェックを行ったところ、 ScottGuのブログ投稿(ページで「8026」を検索)にコメントを投稿している男を見つけました。 私は彼のソリューションを理解していないため、さらにソリューションをもっと見やすくしたいので、このSO投稿を作成しました。 私の質問: C#6の機能を認識するために、タイプがWebサイト(つまりWebアプリケーションではない)のVisual Studio 2015プロジェクトを作成するにはどうすればよいですか?

2
C#6の「静的」機能を使用するにはどうすればよいですか?
C#6の新機能のいくつか、具体的には 「静的を使用する」を調べています。 using staticは、種類の静的メンバーをスコープに直接インポートできる新しい種類のusing句です。 (ブログ投稿の下部) 私が見つけたいくつかのチュートリアルによると、アイデアは次のとおり です: using System; class Program { static void Main() { Console.WriteLine("Hello world!"); Console.WriteLine("Another message"); } } Console静的クラスを使用する新しいC#6機能を使用して、繰り返しステートメントを省略できます。 using System.Console; // ^ `.Console` added. class Program { static void Main() { WriteLine("Hello world!"); WriteLine("Another message"); } // ^ `Console.` removed. } しかし、これは私のために働いているようには見えません。次のように言って、usingステートメントでエラーが発生します。 「 ' using …


3
msbuildをC#6にアップグレードする方法
プロジェクトでC#6を使用したい(null伝播、その他の機能)。 私は自分のPCにVS 2015をインストールしました。それは見事に機能し、次のようなテストコードをビルドします。 var user = new SingleUserModel(); //all model fields are null var test = user.User?.Avatar?["blah"]; しかし、プロジェクトをリポジトリにプッシュし、CIがそれをビルドし始めると、サポートされていないためビルドが失敗します?。 CIサーバーにもVS2015をインストールしましたが、使用していないようです。私に何ができる? CI-CruiseControl .NETビルド C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.