C# 6 の新機能の簡単な紹介

伊谢尔伦
リリース: 2016-11-24 11:51:42
オリジナル
1299 人が閲覧しました

数週間前、私は C#6 のいくつかの新機能についてさまざまな場所で読みました。まだ読んでいない方でも一気に読んでいただけるよう、まとめてみました。中には期待したほど魔法的ではないものもあるかもしれませんが、現時点ではそれが単なるアップデートです。

VS2014をダウンロードするか、ここからvisual studio2013のRoslynパッケージをインストールすることで入手できます。

それでは、見てみましょう:

1. $identifier

$ の役割は、文字列のインデックス作成を簡素化することです。これは、内部で正規表現一致を使用する C# のインデックス作成の動的な性質とは異なります。例は次のとおりです:

var col = new Dictionary<string, string>()
            {
                $first = "Hassan"
            };
 
   //Assign value to member
   //the old way:
   col.$first = "Hassan";
 
   //the new way:
   col["first"] = "Hassan";
ログイン後にコピー

2. 例外フィルター

例外フィルターは VB コンパイラーで長い間サポートされてきましたが、現在は C# でもサポートされています。例外フィルターを使用すると、開発者は特定の条件に対する catch ブロックを作成できます。 catch ブロック内のコードは、条件が満たされた場合にのみ実行されます。これは、私のお気に入りの機能の 1 つです。例は次のとおりです。

try
            {
                throw new Exception("Me");
            }
            catch (Exception ex) if (ex.Message == "You")
ログイン後にコピー

3. catch ブロックとfinally ブロックの await キーワード

私の知る限り、 C# 5 の catch およびfinally コード ブロックで await キーワードが使用できない理由は、どのように記述されても使用できないためです。開発者は I/O 操作ログを表示することがよくあり、キャプチャされた例外情報をログに記録するには、これを非同期で行う必要があるため、これは良いことです。

try
            {
                DoSomething();
            }
            catch (Exception)
            {
                await LogService.LogAsync(ex);
            }
ログイン後にコピー

4. 式の宣言

この機能を使用すると、開発者は式の中で変数を定義できます。これはシンプルですが実用的です。以前は、asp.net を使用して多くの Web サイトを構築していました。これが私がよく使用するコードです:

long id;
if (!long.TryParse(Request.QureyString["Id"], out id))
{ }
ログイン後にコピー

最適化されたコード:

if (!long.TryParse(Request.QureyString["Id"], out long id))
{ }
ログイン後にコピー

この宣言メソッドの変数のスコープは、C# で宣言された変数のスコープと同じです。通常の方法で。

5. Staticの使用

この機能を使用すると、using ステートメントで特定の型を指定でき、その後、この型のすべての静的メンバーを後続の句で使用できます。

using System.Console;
 
namespace ConsoleApplication10
{
    class Program
    {
        static void Main(string[] args)
        {
            //Use writeLine method of Console class
            //Without specifying the class name
            WriteLine("Hellow World");
        }
    }
}
ログイン後にコピー

6. 属性の自動初期化:

C# 6 では、宣言場所のフィールドなどのプロパティが自動調整されます。ここで知っておく必要がある唯一のことは、この初期化によって内部で setter メソッドが呼び出されるわけではないということです。以下は例です:

public class Person
    {
        // You can use this feature on both
        //getter only and setter / getter only properties
 
        public string FirstName { get; set; } = "Hassan";
        public string LastName { get; } = "Hashemi";
    }
ログイン後にコピー

7. メインコンストラクター:

ははは、メイン。コンストラクター コンストラクターを使用すると、コンストラクターのパラメーターを取得し、それをクラスのフィールドに設定して後続の操作をサポートする手間が省けます。これは非常に便利です。この機能の主な目的は、初期化にコンストラクター パラメーターを使用することです。メイン コンストラクターが宣言されている場合、他のすべてのコンストラクターは :this() を使用してこのメ​​イン コンストラクターを呼び出す必要があります。

最後に次の例を示します:

//this is the primary constructor:
    class Person(string firstName, string lastName)
    {
        public string FirstName { get; set; } = firstName;
        public string LastName  { get; } = lastName;
    }
ログイン後にコピー

メイン コンストラクターはクラスの先頭で呼び出されることに注意してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート