C#8.0 の基本理論 第 1 章 -- C# の概要

C#8.0 の本質主義 第 1 章 – C# の概要

友人に勧められた C# の本 - C# Essentials、英語ではEssential C#と呼ばれ、公式 Web サイト https://essentialcsharp.com/home で英語版を無料で読むことができます。

C# は、モバイル デバイス、ゲーム コンソール、Web アプリケーションなどをサポートする、さまざまなシステム プラットフォーム用のアプリケーション ソフトウェアとプログラム コンポーネントを開発できます。

1.1ハローワールド

これは VSCode で記述し、dotnet コマンドを使用してコンパイルできます。VSでも書けます。

.NET Core のすべてのアセンブリは .dll 拡張子を使用します。

1.2 C# 構文の基本

PascalCase と CamelCase (大きなキャメル ケースと小さなキャメル ケースを含む) を含む C# キーワードと識別子規則を導入しました。クラス名と関数名には大きなキャメル ケースを使用し、ローカル変数名には小さなキャメル ケースを使用します。

@ プレフィックスを付加したキーワードを識別子として使用できます。

C# では、Main メソッドがパラメータを指定しないか、文字列配列を受信して​​ void または int を返す必要があります。Main は、プログラムの実行が成功したかどうかを識別するステータス コードを返します。0 以外を返す場合は、通常、エラーを意味します。

C# では、ステートメントを複数行にまたがることができます。

1.3 変数の使用

char は、他の言語とは異なり、16 ビット長の文字型であり、サロゲートなしで Unicode 文字を表すのに十分です。

ローカル変数は、宣言後、読み取られる前に値を割り当てる必要があります。演算としての代入は値を返すため、C# では同じステートメント内で複数の代入演算を行うことができます。

すべての文字列型データは不変です。

1.4 コンソールの入出力

System.Console.Read() メソッドは、読み取られた文字値に対応する整数を返します。使用できる文字がそれ以上ない場合は、-1 を返します。実際の文字を取得するには、整数を文字に変換する必要があります。

C# 2.0 では、ユーザーの単語キー入力を返す ReadKey() メソッドが追加されています。

C# 6.0 より前では、出力形式の定義に複合書式設定が使用されていましたが、C# 6.0 以降では、文字列補間機能が導入され始めました。

//复合格式化
System.Console.WriteLine("your name is {0} {1}",firstname,lastname);
//字符串插值
System.Console.WriteLine($"your name is {firstname} {lastname}");

プレースホルダーは任意の順序で表示でき、複数回使用できます。プレースホルダーは省略することもできます。

1.5 管理された実行と CLI

アセンブリは共通中間言語( CIL ) を使用します。C# コンパイラーは C# ソース コード ファイルを中間言語に変換し、VES (仮想実行システム、ランタイムとも呼ばれる) が必要に応じて CIL コードをコンパイルし、プロセッサが理解できるマシン コードに変換します。このプロセスは単に-インタイム コンパイルまたはJIT コンパイル(ジャストインタイム コンパイル)。コードが「ランタイム」などの「エージェント」のコンテキストで実行される場合、それはマネージ コードと呼ばれます。実行時に「ランタイム」を必要としないコードは、ネイティブ コードまたはアンマネージ コードと呼ばれます。

ILDASM を使用してアセンブリを逆アセンブルし、C# コンパイラによって生成された CIL を抽出できます。一部の難読化ツールは、他人がソース コードを入手する可能性を減らすために使用できます。CIL を C# に逆コンパイルするツールは数多くあります。

1.6 複数の .NET フレームワーク

この本では、.NET Core が .NET の未来であると述べられています。ただし、vs2022 には .NET Framework しかありません。

おすすめ

転載: blog.csdn.net/Story_1419/article/details/132113913