C#

 Computer >> コンピューター >  >> プログラミング >> C#
  1. ジェネリックがC#でどのように機能するかを説明する

    ジェネリックはC#のバージョン2.0で追加され、言語で最も重要な概念の1つです。これらを使用すると、コンパイル時にタイプセーフな再利用可能な高性能コードを記述できます。ジェネリックスを使用すると、事前に知らなくてもコードで型を使用できます。 ジェネリックスは、コレクション、デリゲート、非同期コードなど、.NETの多くの場所で使用されています。ジェネリックスを使用すると、コレクションのサイズを事前に知る必要がなく、コードに固有のカスタムデータ型を含め、任意の要素タイプでジェネリックスを使用できます。 C#は、ジェネリック型(クラス、インターフェイスなど)とジェネリックメソッドの両方をサポートし

  2. C#でのデリゲートの概念を説明する

    Cプログラマーの場合、デリゲートは関数へのポインターと考えることができます。ただし、C#のデリゲートは、単なる関数ポインターではありません。この記事では、デリゲートの概念と日常のプログラミングでのその使用について説明します。 基本的に、デリゲートはあるレベルの間接参照を提供します。これらは、タイプセーフな方法で受け渡して実行できるコードをカプセル化します。ビヘイビアーをすぐに実行する代わりに、オブジェクトに含まれます。そのオブジェクトに対して実行できるアクションは複数あり、そのうちの1つが含まれている動作を実行しています。 デリゲートを使用すると、高階関数、つまり関数をパラメーターとして受

  3. インターフェイスはC#でどのように機能しますか?

    インターフェイスは、クラスまたは構造体によって実装されるコントラクトを定義します。メソッド、プロパティ、イベント、およびインデクサーを含めることができます。インターフェイスはクラスに似ていますが、データを保持せず、実行できる動作(より正確には、それを実装するクラスが実行できる)のみを指定する点が異なります。 クラスは1つ以上のインターフェースを実装できます。インターフェイスメンバーを実装するには、クラスにインターフェイスメンバーと同じメソッド定義(つまり、同じ名前と署名)を持つパブリックメンバーが必要です。 たとえば、IComparerは、System.Collections名前空間で定義

  4. null値を処理するためにC#が提供する演算子は何ですか?

    C#には、null値を処理するための次の3つの演算子があります- null合体演算子(??) nullでない場合に変数の値を取得できるようにします。あるいは、使用できるデフォルト値を指定します。 これは、C#の次の式を置き換えます- string resultOne = value != null ? value : "default_value"; 次の式で- string resultTwo = value ?? "default_value"; これを説明する例を次に示します。 例 using System; class Progra

  5. C#のconstキーワードとreadonlyキーワードの違いを説明する

    C#では、constキーワードとreadonlyキーワードの両方を使用して、宣言された後は変更できない不変の値を定義します。ただし、2つの間にいくつかの重要な違いがあります。 const const修飾子は、コンパイル時に既知であり、変更されない、つまり不変である定数値を宣言します。 C#では、組み込みの型のみをconstとしてマークできます。クラス、構造体などのユーザー定義型はconstにすることはできません。また、メソッド、プロパティ、イベントなどのクラスメンバータイプを定数としてマークすることはできません。 宣言中に定数を初期化する必要があります。 class Period{ &

  6. 配列はC#でどのように機能しますか?

    配列は、特定のタイプの要素の固定数を表します。要素はメモリの連続したブロックに格納され、要素のインデックスを知っている限り、要素への非常に効率的なアクセスを提供します。 配列を宣言して初期化するためのC#構文は次のとおりです- // create a string array to hold 5 languages string[] languages = new string[3]; 配列が宣言されると、配列の四角表記を使用して、配列内のアイテムにデータを入力できます。 languages[0] = "csharp"; languages[1] = "vis

  7. C#の重要な名前空間にはどのようなものがありますか?それぞれの簡単な説明を提供します

    サードパーティのライブラリを含めると、.NETには多くの名前空間とさらに多くの名前空間が含まれます。ただし、何度も使用するものがいくつかあります。これが、一般的な、繰り返し発生するプログラミングの問題の80%を解決するための20の問題です。 システム 最も基本的なタイプが含まれています。これらには、一般的に使用されるクラス、構造、列挙型、イベント、インターフェースなどが含まれます。 System.Text ASCIIおよびUnicode文字エンコーディングを表すクラスが含まれています。文字のブロックをバイトのブロックとの間で変換するためのクラス。 System.Text.Regula

  8. C#のStringBuilderクラスの目的は何ですか?

    C#では、文字列は不変です。つまり、一度作成した文字列を変更することはできません。文字列を変更すると、変更を含む新しい文字列が返され、元の文字列はそのまま残ります。 string word = "aaabbbccc"; string newWord = word.Replace('b', 'd'); Console.WriteLine(word); // prints aaabbbccc Console.WriteLine(newWord); // prints aaadddccc StringBuilderクラスは、変更可能な文字列のよう

  9. C#のSystem.Reflection名前空間

    C#のSystem.Reflection名前空間C#のSystem.Reflection名前空間には、メタデータを調べることにより、コード内のアセンブリ、モジュール、メンバー、パラメーター、およびその他の項目に関する情報を提供するタイプが含まれています。この名前空間のAssemblyクラスは、アセンブリを表します。通常、TypeのAssemblyプロパティを使用してアクセスできます。 アセンブリのIDは、4つのアイテムで構成されています- 簡単な名前 major.minor.build.revision形式のAssemblyVersion属性のバージョン(存在しない場合は0.0.0.0)

  10. C#での依存性注入について説明する

    依存関係は、別のオブジェクトが依存するオブジェクトです。依存性注入(または反転)は、基本的に、オブジェクト自体を構築するのではなく、オブジェクトが必要とするオブジェクトを提供します。依存関係をモックできるので、テストを簡単にする便利なテクニックです。 たとえば、クラスAがクラスBのメソッドを呼び出し、次にクラスCのメソッドを呼び出す場合、つまり、AはBに依存し、BはCに依存します。依存性注入を使用して、クラスCのインスタンスをクラスBに渡すことができます。 、およびBとCのインスタンスを構築するためにこれらのクラスを持つ代わりに、BのインスタンスをクラスAに渡します。 以下の例では、クラス

  11. 与えられた行列がC#を使用してテプリッツ行列であるかどうかを確認するにはどうすればよいですか?

    左上から右下までのすべての対角線が同じ要素を持っている場合、行列はテプリッツです。 例1 [[1,2,3,4], [5,1,2,3], [9,5,1,2]] 出力 − true 上記のグリッドでは、対角線は-です。 "[9]", "[5, 5]", "[1, 1, 1]", "[2, 2, 2]", "[3, 3]", "[4]". 各対角線ではすべての要素が同じであるため、答えは真です。 例2 Input: matrix [[1,2], [2,2]] 出力

  12. C#を使用して行ごとおよび列ごとに増加した行列を検索するにはどうすればよいですか?

    この問題の根本的な解決策は、入力行列に格納されているすべての要素をスキャンして、指定されたキーを検索することです。行列のサイズがMxNの場合、この線形探索アプローチにはO(MN)時間がかかります。 行列は、並べ替えられた1次元配列として表示できます。入力行列のすべての行が上から下の順序で連結されている場合、ソートされた1次元配列を形成します。そして、その場合、二分探索アルゴリズムはこの2D配列に適しています。以下のコードは、2次元配列と検索キーを入力として受け取り、見つかった検索キーの成功または失敗に応じてtrueまたはfalseを返す関数SearchRowwiseColumnWiseMat

  13. C#を使用して行ごとに増加した行列を検索するにはどうすればよいですか?

    この問題の根本的な解決策は、入力行列に格納されているすべての要素をスキャンして、指定されたキーを検索することです。行列のサイズがMxNの場合、この線形探索アプローチにはO(MN)時間がかかります。 検索要素が右上の要素よりも大きい場合は、マトリックスを右上からスキャンする必要があります。その後、行をインクリメントするか、列をデクリメントします。以下のコードは、2次元配列と検索キーを入力として受け取り、見つかった検索キーの成功または失敗に応じてtrueまたはfalseを返す関数SearchRowwiseIncrementedMatrixを開発します。 コード public class Matr

  14. C#を使用して合計ゼロになるすべての一意のトリプレットを見つける方法は?

    簡単なアプローチは、3つのネストされたループを作成し、3つの要素すべての合計がゼロかどうかを1つずつ確認することです。 3つの要素の合計がゼロの場合は、要素を出力します。 時間計算量 − o(n 3 ) スペースの複雑さ − o(1) 順序付けされていないセットデータ構造を使用して、配列の各値を格納できます。 Setには、O(1)時間で要素を検索するという利点があります。したがって、配列内の各ペアについて、セットに存在する可能性のあるそれらの合計の負の値を探します。そのような要素が見つかった場合、整数のペアとそれらの合計の負の値になるトリプレットを出力できます。 時間計算量 − o(n

  15. C#を使用して特定の文字列内の文字までの最短距離を見つける方法は?

    2つの異なる配列leftDisとrightDisを作成します。 leftDisは、左方向から移動したときに値を格納します。 rightDisは、右から移動したときに最短の値を格納します。文字が満たされるたびに、文字の位置を配列に追加します。最後のステップで、両方のアレイの最小値を計算します。 時間計算量 − o(n) スペースの複雑さ − o(n) 例 public class Arrays{    public int[] ShortestDistanceToCharacter(string s, char c){       int str

  16. C#を使用して、特定の文字列内の文字までの最長距離を見つける方法は?

    2つの異なる配列leftDisとrightDisを作成します。 leftDisは、左方向から移動したときに値を格納します。 rightDisは、右から移動したときに最短の値を格納します。文字が満たされるたびに、文字の位置を配列に追加します。最後のステップで、両方のアレイの最大値を計算します。 時間計算量 − o(n) スペースの複雑さ − o(n) 例 public class Arrays{    public int[] LongestDistanceToCharacter(string s, char c){       int st

  17. C#を使用して、指定されたターゲットに近い一意のトリプレットを見つける方法は?

    Two Pointersパターンであり、Triplet SumtoZeroに似ています。同様のアプローチに従って、一度に1つの数値を取得して、配列を反復処理できます。すべてのステップで、トリプレットとターゲット数の差を保存し、各ステップでこれまでの最小ターゲット差と比較して、最終的に最も近い合計でトリプレットを返すことができるようにします。 時間計算量 配列の並べ替えにはO(N * logN)が必要です。全体として、threeSumClosest()はO(N * logN + N ^ 2)を取ります。これは、漸近的にO(N ^ 2)と同等です。 スペースの複雑さ 上記のアルゴリズム

  18. C#を使用してゼロに近いすべての一意の4つ組を見つける方法は?

    簡単なアプローチは、4つのネストされたループを作成し、4つの要素すべての合計がゼロかどうかを1つずつ確認することです。 4つの要素の合計がゼロの場合は、要素を出力します。 時間計算量 − o(n 4 ) スペースの複雑さ − o(1) 順序付けされていないセットデータ構造を使用して、配列の各値を格納できます。 Setには、O(1)時間で要素を検索するという利点があります。したがって、配列内の各ペアについて、セットに存在する可能性のあるそれらの合計の負の値を探します。そのような要素が見つかった場合、整数のペアとそれらの合計の負の値になるトリプレットを出力できます。 時間計算量 − o

  19. C#を使用してターゲットに近い4つ組を見つける方法は?

    2つのポインターのパターンであり、4つ組のSumtoZeroに似ています。同様のアプローチに従って、一度に1つの数値を取得して、配列を反復処理できます。すべてのステップで、4つ組とターゲット数の差を保存し、各ステップでこれまでの最小のターゲット差と比較して、最終的に最も近い合計の3つ組を返すことができます。 時間計算量 配列の並べ替えにはO(N * logN)が必要です。全体として、fourSumClosest()はO(N * logN + N ^ 3)を取ります。これは、漸近的にO(N ^ 3)と同等です。 スペースの複雑さ 上記のアルゴリズムのスペースの複雑さは、ソートに必要な

  20. C#を使用して、指定された数のパスカルの三角形を生成するにはどうすればよいですか?

    パスカルの三角形は、三角形の形をした数字のパターンです。パスカルの三角形には、組み合わせの計算に役立つ機能など、数学や統計に多くの用途があります。 三角形の各数字は、その上の2つの数字の合計です。たとえば、4行目-上の行の3と3の合計です。行の最初と最後の数字は常に1になります。 時間計算量 − O(N) スペースの複雑さ − O(N) 例 public class Arrays{    public List<List<int>> GeneratePascal(int n){       List<List<

Total 2668 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:132/134  20-コンピューター/Page Goto:1 126 127 128 129 130 131 132 133 134