C# のバージョン

PHPz
リリース: 2024-09-03 15:02:35
オリジナル
520 人が閲覧しました

C# は Microsoft によって作成された高級プログラミング言語で、開発者に多用途性とパワーを提供します。何度も改良を重ね、より効率的で使いやすいものにするための改良と新機能を導入してきました。これらの変更により、開発者は最新のソフトウェア アプリケーションを簡単に構築できるようになりました。この記事では、C# 1.0 から最新バージョンの C# 10.0 まで、最も重要な進歩とそれがソフトウェア開発の世界に与える影響について説明します。これらの変更を理解することは、C# の可能性を最大限に活用したい開発者にとって不可欠です。

C# のバージョン

ここでは C# のバージョンについて説明します。 C# のバージョンは以下のとおりです:

1. C# バージョン 1.0

このバージョンは Java に似ています。非同期機能と一部の機能が欠如しています。このリリースの主な機能は以下のとおりです

クラス: オブジェクトの作成に使用されるブループリントです。

  • ファイルごとにパブリック クラスは 1 つだけ存在できます。
  • コメントは任意の行の先頭または末尾に表示できます。
  • ファイル内にパブリック クラスがある場合、ファイルの名前はパブリック クラスの名前と一致する必要があります。
  • 存在する場合、パッケージステートメントは最初の行である必要があります。
  • インポート ステートメントは、パッケージ ステートメント (存在する場合) とクラス宣言の間に置く必要があります。
  • package または import ステートメントがない場合、クラス宣言はソース コード ファイルの最初の行である必要があります。
  • import ステートメントと package ステートメントは、ソース コード ファイル内のすべてのクラスに適用されます。
  • パブリック クラスのないファイルには、ファイル内のクラス名と一致する必要のない名前を付けることができます。

コード:

// declaring public class
public class Test
{
// variable
public int a, b;
// member function
public void display()
{
WriteLine("Class in C#");
}
}
ログイン後にコピー

構造体: Struct では、単一の変数の下にさまざまなデータ型を保存できます。構造体でユーザー定義のデータ型を使用できます。これを定義するには、struct キーワードを使用する必要があります。

コード:

using System;
namespace ConsoleApplication {
// structure
public struct Emp
{
// different data types
public string Name;
public int Age;
public int Empno;
}
class Geeks {
// Main Method
static void Main(string[] args)
{
// Declare P1 of type Person
Person P1;
// P1's data
P1.Name = "Ram";
P1.Age = 21;
P1.Empno = 80;
// Displaying the values
Console.WriteLine("Data Stored in P1 is " +
P1.Name + ", age is " +
P1.Age + " and empno is " +
P1.empno);
}
}
}
ログイン後にコピー

インターフェース:

  • インターフェースはクラスのコントラクトとして使用されます。
  • すべてのインターフェイス メソッドは暗黙的にパブリックかつ抽象的です。
  • すべてのインターフェイス変数は public static Final です。
  • 静的メソッドは許可されません。
  • インターフェースは複数のインターフェースを拡張できます。
  • クラスは複数のインターフェースを実装できます。
  • インターフェイスを実装するクラスは、インターフェイスのすべてのメソッドを定義するか、抽象として宣言する必要があります。

リテラル: 変数で使用される値です。これは定数値のようなものです。

コード:

class Test {
// Main method
public static void Main(String []args)
{
int a = 102;
// octal-form literal
int b = 0145
;
// Hexa-decimal form literal
int c = 0xFace;
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
}
}
ログイン後にコピー

デリゲート: これはポインタのようなものです。他のメソッドを保持する参照型変数です。

2. C# バージョン 1.2

このバージョンでは、いくつかの機能強化が行われました。このバージョンでは、式が false になるまで各ブロックを実行する各ループが追加されました。

3. C# バージョン 2.0

このバージョンでは、以下の高度な機能が追加されました。

ジェネリック: ジェネリック プログラミングは、後で指定される型に関してアルゴリズムが記述され、パラメータとして指定された特定の型に対して必要に応じてインスタンス化される、コンピューター プログラミングのスタイルです。

匿名メソッド: これは空のメソッドです。これは、キーワード delegate を使用して定義されます。

  • Null 許容型: このリリースより前は、変数を null として定義できません。したがって、このリリースではこれを克服します。
  • 反復子
  • 共分散と反分散
  • ゲッター/セッターの個別のアクセシビリティ: 値の取得と設定にゲッター セッターを使用できます。

4. C# バージョン 3.0

このバージョンにより、C# は強力なプログラミング言語になりました。

  • オブジェクトとコレクションの初期化子: これを使用すると、コンストラクターを呼び出すことなく任意のフィールドにアクセスできます。
  • 部分メソッド: 名前が示すように、その署名と実装は個別に定義されます。
  • Var: キーワード var.
  • を使用して任意の変数を定義できます。

5. C# バージョン 4.0

このバージョンにはいくつかの興味深い機能が導入されました:

動的バインディング: これはメソッドのオーバーライドに似ています。ここで、コンパイラは呼び出すメソッドを決定しません。

コード:

public class ClassA
{
public static class superclass
{
void print()
{
System.out.println("superclass.");
}
}
public static class subclass extends superclass
{
@Override
void print()
{
System.out.println("subclass.");
}
}
public static void main(String[] args)
{
superclass X = new superclass();
superclass Y= new subclass();
X.print();
Y.print();
}
}
ログイン後にコピー
  • 名前付き/オプションの引数
  • 一般的な共変と反変
  • 組み込み相互運用タイプ

ここでの主な機能はキーワードの動的でした。実行時にコンパイラをオーバーライドします。

6. C# バージョン 5.0

このバージョンでは、非同期プログラミング用の 2 つの新しいモデルが追加されました。

非同期で待機

これらを使用すると、コンテキストに関する情報を簡単に取得できます。これは、長時間実行される操作に非常に役立ちます。この async では、キーワード await が有効になります。 await キーワードを使用すると、すべてが非同期になります。したがって、キーワードが待機するまで同期的に実行されます。

7. C# バージョン 6.0

このバージョンには以下の機能が含まれています

  • 静的インポート
  • 表情豊かなメンバー
  • Null プロパゲータ
  • キャッチ/最終ブロックで待機
  • ゲッター専用プロパティのデフォルト値
  • 例外フィルター
  • 自動プロパティ初期化子
  • 文字列補間
  • オペレーターの名前
  • インデックス初期化子

8. C# バージョン 7.0

このバージョンには以下の利点があります

出力変数: この変数は基本的に、メソッドが複数の値を返す必要がある場合に使用されます。キーワード out は引数に渡すために使用されます。

その他の重要な側面は次のとおりです

  • タプルと分解。
  • 地元の人に紹介して返します。
  • 破棄: これらは書き込み専用の準備完了変数です。基本的に、これはローカル変数を無視するために使用されます。
  • バイナリ リテラルと桁区切り文字。
  • 式をスローします
  • パターン マッチング: これは任意のデータ型で使用できます。
  • ローカル関数: この関数を使用すると、メソッド内ですでに定義されているメソッドを本体内で宣言できます。
  • 表現力豊かなメンバーが増えました。

9. C# バージョン 8.0

2019 年にリリースされた C# 8.0 では、コードの安全性を強化する重要な機能である null 許容参照型が導入されました。これにより、開発者はコードに注釈を付けて、変数が null 値を保持できるかどうかについての意図を表現できるようになり、コンパイル時に null 参照例外をキャッチするのに役立ちます。さらに、C# 8.0 では、非同期ストリームなどの機能強化が行われ、非同期アプリケーションやリアクティブ アプリケーションの開発が簡素化され、パターン マッチングが強化されました。これらの機能によりコードの信頼性、可読性、効率性が向上し、C# 8.0 は最新のソフトウェア開発における言語の進化における貴重なステップとなります。

10. C# バージョン 9.0

2020 年にリリースされた C# 9.0 では、言語に大幅な機能強化が加えられました。その際立った機能はレコード タイプの導入であり、組み込みの値の等価性、不変性、パターン マッチングを提供することでデータ クラスの作成を簡素化しました。また、ソース ジェネレーターも導入され、コンパイル時の自動コード生成が可能になり、コードの生成と分析が強化されました。さらに、C# 9.0 では、新機能によりパターン マッチングが改善され、関数ポインターとトップレベル ステートメントのサポートが追加され、コードがより簡潔で読みやすくなりました。これらの変更により、開発者の生産性とコードの安全性が向上し、C# が最新の多用途プログラミング言語として確固たるものとなりました。

11. C# バージョン 10.0

C# バージョン 10.0 は、2021 年 11 月にリリースされた C# プログラミング言語の最新バージョンです。これには、より効率的で使いやすくするためのいくつかの新機能と改善が含まれています。 C# 10.0 の注目すべき機能には次のものがあります。

  • グローバルな使用: この機能により、開発者はプログラム全体のグローバル ディレクティブを定義できます。
  • ファイル スコープの名前空間: この機能を使用すると、開発者はファイル レベルで名前空間を定義できるため、コードを整理しやすくなり、名前の競合を回避できます。
  • 改善されたラムダ サポート: C# 10.0 では改善されたラムダ式が導入され、開発者はより短く簡潔なコードを作成できるようになりました。
  • 書式指定文字列としての補間文字列: この機能により、開発者は補間文字列を書式指定文字列として使用でき、文字列の書式設定プロセスを簡素化できます。
  • パターン マッチングの改善: C# 10.0 には、パターン マッチングが強化され、より強力かつ柔軟になりました。
  • .NET ランタイムの新機能: C# 10.0 には、ARM64 のサポートや JIT コンパイルのパフォーマンス向上など、.NET ランタイムの新機能も含まれています。

12. C# バージョン 11.0

C# 11 では、生の文字列リテラル、汎用数学サポート、汎用属性、UTF-8 文字列リテラル、文字列補間式の改行、リスト パターン、ファイルローカル型、必須メンバー、自動デフォルト構造体、 Span のパターン マッチング定数文字列、拡張されたスコープ名、数値 IntPtr、参照フィールド、スコープ付き参照、デリゲートへのメソッド グループ変換の改善、および 7 番目の警告ウェーブについて。これらの追加は、言語の多用途性、パフォーマンス、開発者エクスペリエンスを強化することを目的としており、ソフトウェア開発のための改善されたツールと機能を提供します。

そのため、すべてのバージョンには、開発者が複雑な問題を効率的に解決できるようにする C# の新機能が含まれています。

以上がC# のバージョンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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