C#

  1. IDisposable インターフェイス

    # 管理対象リソースのみを含むクラス内 マネージド リソースは、ランタイムのガベージ コレクターが認識し、制御しているリソースです。 SqlConnection など、BCL で使用できるクラスは多数あります。 これは、アンマネージ リソースのラッパー クラスです。これらのクラスはすでに IDisposable を実装しています インターフェイス -- 完了時にそれらをクリーンアップするのはコード次第です。 クラスにマネージド リソースしか含まれていない場合は、ファイナライザーを実装する必要はありません。 public class ObjectWithManagedResourcesOnl

  2. ディレクティブの使用

    # クラスの静的メンバーへのアクセス 特定の型をインポートし、型名で修飾せずにその型の静的メンバーを使用できるようにします。これは、静的メソッドを使用した例を示しています: using static System.Console; // ... string GetName() { WriteLine("Enter your name."); return ReadLine(); } そして、これは静的プロパティとメソッドを使用した例を示しています: using static System.Math; namespace Geometry {

  3. ステートメントの使用

    IDisposable オブジェクトの正しい使用を保証する便利な構文を提供します。 # Gotcha:破棄しているリソースを返す 以下は db を破棄するため、悪い考えです。 変数を返す前に public IDBContext GetDBContext() { using (var db = new DBContext()) { return db; } } これは、より微妙な間違いを引き起こす可能性もあります: public IEnumerable<Person> GetPeople(int age) { using (va

  4. ジェネリック

    # 暗黙の型推論 (メソッド) 仮引数をジェネリック メソッドに渡す場合、通常、関連するジェネリック型引数を暗黙的に推論できます。すべてのジェネリック型を推測できる場合、構文でのジェネリック型の指定はオプションです。 次の一般的な方法を検討してください。これには、1 つの仮パラメーターと 1 つのジェネリック型パラメーターがあります。それらの間には非常に明白な関係があります。ジェネリック型パラメーターに引数として渡される型は、仮パラメーターに渡される引数のコンパイル時の型と同じでなければなりません。 void M<T>(T obj) { } これら 2 つの呼び出しは同等

  5. 継承

    # 継承。コンストラクターの呼び出しシーケンス クラス Animal があるとします。 子クラス Dog を持つ class Animal { public Animal() { Console.WriteLine("In Animals constructor"); } } class Dog : Animal { public Dog() { Console.WriteLine("In Dogs constructor"); } } デフォルトでは、すべてのク

  6. コメントと地域

    # コメント プロジェクトでコメントを使用することは、デザインの選択についての説明を残す便利な方法であり、コードを維持または追加するときに、あなた (または他の誰か) の生活を楽にすることを目的としています。 コードにコメントを追加するには、2 つの方法があります。 # 一行コメント // の後に配置されたテキスト コメントとして扱われます。 public class Program { // This is the entry point of my program. public static void Main() { // Prints a

  7. XML ドキュメントのコメント

    # シンプルなメソッド アノテーション ドキュメント コメントは、説明するメソッドまたはクラスのすぐ上に配置されます。 3 つのスラッシュ /// で始まります 、メタ情報を XML 経由で保存できるようにします。 /// <summary> /// Bar method description /// </summary> public void Bar() { } タグ内の情報は、Visual Studio やその他のツールで IntelliSense などのサービスを提供するために使用できます: Microsoft の一般的なド

  8. 命名規則

    このトピックでは、C# 言語で記述するときに使用されるいくつかの基本的な命名規則について概説します。すべての規則と同様に、これらはコンパイラによって強制されるわけではありませんが、開発者の間で読みやすくなります。 包括的な .NET Framework 設計ガイドラインについては、docs.microsoft.com/dotnet/standard/design-guidelines を参照してください。 # 大文字表記規則 次の用語は、識別子を区別するさまざまな方法を説明しています。 # パスカル ケーシング 識別子の最初の文字と、後続の各連結単語の最初の文字は大文字になります。 3

  9. 再帰

    # 平易な英語での再帰 再帰は次のように定義できます: 特定の条件が満たされるまで自分自身を呼び出すメソッド。 再帰の優れた単純な例は、特定の数値の階乗を取得するメソッドです: public int Factorial(int number) { return number == 0 ? 1 : n * Factorial(number - 1); } このメソッドでは、メソッドが引数 number を取ることがわかります . ステップバイステップ: 例を考えると、 Factorial(4) を実行します number (4) == 1 です ? いいえ? 4 *

  10. C# でのオブジェクト指向プログラミング

    このトピックでは、OOP アプローチに基づいてプログラムを作成する方法を説明しようとします。ただし、オブジェクト指向プログラミングのパラダイムを教えようとはしません。クラス、プロパティ、継承、ポリモーフィズム、インターフェイスなどのトピックを取り上げます。 # クラス: 宣言クラスのスケルトンは次のとおりです: <>:必須 []:オプション [private/public/protected/internal] class <Desired Class Name> [:[Inherited class][,][[Interface Name 1],[Interface Na

  11. キーワード

    キーワードは、コンパイラにとって特別な意味を持つ事前定義された予約済みの識別子です。 @ なしでは、プログラムで識別子として使用することはできません。 プレフィックス。例:@if は正当な識別子ですが、キーワード if ではありません . # as as キーワードは キャスト に似た演算子です . as を使用してキャストできない場合 null を生成します InvalidCastException になるのではなく . expression as type expression is type ? (type)expression : (type)null と同等です as という警告

  12. データ注釈

    # カスタム検証属性の作成 ValidationAttribute から派生することにより、カスタム検証属性を作成できます。 基本クラス、その後 virtual をオーバーライド [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = false)] public class NotABananaAttribute : ValidationAttribute { public override bool IsValid(object value) { var

  13. 名前付きおよびオプションの引数

    # オプションの引数 上記は、オプションの引数を持つ関数定義であると考えてください。 private static double FindAreaWithOptional(int length, int width=56) { try { return (length * width); } catch (Exception) { throw new NotImplementedException();

  14. 名前付き引数

    # 引数の順序は不要 名前付き引数は、好きな順序で配置できます。 サンプル方法: public static string Sample(string left, string right) { return string.Join("-",left,right); } 通話サンプル: Console.WriteLine (Sample(left:"A",right:"B")); Console.WriteLine (Sample(right:"A",left:"B"));

  15. 拡張方法

    # 拡張メソッド - 概要 拡張メソッドは C# 3.0 で導入されました。拡張メソッドは、新しい派生型を作成したり、再コンパイルしたり、元の型を変更したりすることなく、既存の型を拡張して動作を追加します。 強化しようとしているタイプのソースを変更できない場合に特に役立ちます。 拡張メソッドは、システム タイプ、サード パーティによって定義されたタイプ、および独自に定義したタイプに対して作成される場合があります。拡張メソッドは、元の型のメンバー メソッドであるかのように呼び出すことができます。これにより、メソッド チェーンが可能になります Fluent Interface の実装に使用 .

  16. メソッド

    # メソッドの呼び出し 静的メソッドの呼び出し: // Single argument System.Console.WriteLine("Hello World"); // Multiple arguments string name = "User"; System.Console.WriteLine("Hello, {0}!", name); 静的メソッドの呼び出しとその戻り値の格納: string input = System.Console.ReadLine(); インスタンス メソッドの呼び出し:

  17. オブジェクト初期化子

    # シンプルな使い方 オブジェクト初期化子は、オブジェクトを作成してすぐにいくつかのプロパティを設定する必要がある場合に便利ですが、利用可能なコンストラクターでは不十分です。クラスがあるとしましょう public class Book { public string Title { get; set; } public string Author { get; set; } // the rest of class definition } クラスの新しいインスタンスを初期化子で初期化するには: Book theBook = new Book { Title

  18. 部分的なクラスとメソッド

    部分クラスは、クラスを複数の部分と複数のソース ファイルに分割するオプションを提供します。すべてのパーツは、コンパイル時に 1 つのクラスに結合されます。すべての部分にキーワード partial を含める必要があります 、同じアクセシビリティである必要があります。コンパイル時に含めるには、すべてのパーツが同じアセンブリに存在する必要があります。 # 部分クラス 部分クラスは、クラス宣言を (通常は別々のファイルに) 分割する機能を提供します。部分クラスで解決できる一般的な問題は、コードが再生成された場合に変更が上書きされることを恐れずに、ユーザーが自動生成されたコードを変更できるようにするこ

  19. 依存性注入

    # 依存性注入 C# と Unity を使用した ASP.NET まず、コードで依存性注入を使用する必要があるのはなぜですか?プログラム内の他のクラスから他のコンポーネントを分離したいと考えています。たとえば、次のようなコードを持つクラス AnimalController があります: public class AnimalController() { private SantaAndHisReindeer _SantaAndHisReindeer = new SantaAndHisReindeer(); public AnimalController(){

  20. シングルトンの実装

    # 静的に初期化されたシングルトン public class Singleton { private readonly static Singleton instance = new Singleton(); private Singleton() { } public static Singleton Instance => instance; } この場合 instance であるため、この実装はスレッドセーフです。 オブジェクトは静的コンストラクターで初期化されます。 CLR は、すべての静的コンストラクターがスレッドセーフに実行されることを既に保証し

Total 13414 -C プログラミング  FirstPage PreviousPage NextPage LastPage CurrentPage:5/671  20-C プログラミング/Page Goto:1 2 3 4 5 6 7 8 9 10 11