-
C#のintとInt32の違いは何ですか?
Int32 は.NETFrameworkによって提供されるタイプですが、 int はC#言語でのInt32のエイリアスです。 Int32 x =5; int x =5; したがって、使用中、上記のステートメントは両方とも32ビット整数を保持します。それらは同じコードにコンパイルされるため、実行時に何の違いもありません。 唯一の小さな違いは、Int32はシステムでのみ使用できることです。 名前空間。上記のような値の型を検証する際に、Int32またはintを使用できます。 typeof(int) == typeof(Int32) == typeof(System.Int32
-
C#で2つの疑問符を一緒に(??)とはどういう意味ですか?
これはnull合体です オペレーター。 null合体演算子?? nullでない場合は、左側のオペランドの値を返します。それ以外の場合は、右側のオペランドを評価し、その結果を返します。 ??左側のオペランドがnull以外と評価された場合、演算子は右側のオペランドを評価しません。 null許容型は、未定義または型のドメインからの値を表すことができます。 ??を使用できます左のオペランドがnull許容型の場合に適切な値を返す演算子。 ??を使用せずにnull許容値タイプをnull許容値タイプに割り当てようとすると演算子の場合、コンパイル時エラーが発生し、強制的にキャストすると、InvalidOpe
-
C#の文字列の前にある@とは何ですか?
文字列を逐語的な文字列リテラルとしてマークします 。 C#では、特殊記号@を使用して逐語的な文字列が作成されます。 @は逐語的な識別子として知られています。文字列に接頭辞として@が含まれ、その後に二重引用符が続く場合、コンパイラはその文字列を逐語的な文字列として識別し、その文字列をコンパイルします。 @記号の主な利点は、文字列コンストラクターにエスケープ文字と改行を無視するように指示することです。 例 using System; using System.IO; namespace DemoApplication{ class Program{ &nb
-
C#で使用できるアクセス修飾子の種類は何ですか?
アクセス修飾子は、クラスのメンバーまたはクラス自体のタイプのアクセシビリティの範囲を指定するために使用されます。アクセス修飾子には6つの異なるタイプがあります。 公開 プライベート 保護されています 内部 保護された内部 プライベート保護 パブリックアクセス修飾子 パブリックアクセス修飾子を実装するオブジェクトには、プロジェクト内のどこからでも制限なくアクセスできます。 例 using System; namespace MyApplication{ public class Program{ &n
-
C#のメソッドのさまざまな種類のパラメーターは何ですか?
C#のメソッドは通常、プログラム内のコードまたはステートメントのブロックであり、ユーザーが同じコードを再利用できるようにすることで、最終的にメモリの過度の使用を節約し、時間の節約になります。さらに重要なことに、コードの読みやすさが向上します。 ユーザーがメソッドを実行したい場合もありますが、そのメソッドを実行してタスクを完了するために、いくつかの貴重な入力が必要になる場合があります。これらの入力値は、パラメータと呼ばれます。 。 パラメータは、次の方法でメソッドに渡すことができます- 値パラメータ 参照パラメータ 出力パラメータ 値パラメータ 値パラメーターは、引数の
-
C#のSystem.StringクラスとSystem.Text.StringBuilderクラスのどちらが優れていますか?
主な違いはStringBuilderは可変です 一方、文字列は不変です。 文字列は不変です。不変とは、文字列オブジェクトを作成した場合、それを変更できず、常にメモリ内に文字列型の新しいオブジェクトを作成することを意味します。 一方、StringBuilderは変更可能です。つまり、文字列ビルダーオブジェクトを作成すると、毎回新しいインスタンスを作成しなくても、挿入、置換、追加などの操作を実行できます。メモリ内の1つの場所で文字列を更新しますが、メモリ内に新しいスペースは作成されません。 例 using System; using System.Text; class DemoApplic
-
C#のインターフェイス内でアクセス修飾子を指定できないのはなぜですか?
インターフェースメソッドは、このインターフェースを実装するクラスが特定の一連のことを実行することを指定する外部との契約です。 インターフェイスの目的は他のタイプがクラスまたは構造体にアクセスできるようにすることであるため、インターフェイスメンバーは常にパブリックです。 インターフェイスには、保護されたものや内部的なものなどのアクセス指定子を含めることができます。したがって、「外界」を「外界全体」のサブセットに制限します。 例 interface IInterface{ void Save(); } class Program{ stati
-
C#の関数から複数の値を返すにはどうすればよいですか?
c#では、以下のアプローチを使用して複数の値を返すことができます- 参照パラメータ 出力パラメータ 配列を返す タプルを返す 参照パラメータ 例 class Program{ static int ReturnMultipleValuesUsingRef(int firstNumber, ref int secondNumber){ secondNumber = 20; return firstNumber; } &n
-
C#Auto-Propertyにデフォルト値を与えるにはどうすればよいですか?
C#5.0以前では、Autoプロパティに値を指定するには、コンストラクターで行う必要があります クラスがインスタンス化され、値が設定されると、コンストラクターが自動的に呼び出されます C#5.0以降、変数に値を割り当てるのと同様の、autoプロパティに値を与える新しい方法が登場しました 例 Set Value in Constructor class Demo{ public Demo(){ FirstName = "DemoName"; } publ
-
C#でタプルを使用するのはいつですか?
タプルは、refまたはoutパラメーターを使用せずにメソッドから複数の値を返したい場合に使用されます。 タプルは、単一のパラメーターを介してメソッドに複数の値を渡すために使用されます。タプルは一緒にネストすることもできます 例 パラメータとしてのPassigタプル class Program{ static void DisplayTupleValues(Tuple<int, string, string> dummy){ Console.WriteLine($"Id = { dummy.Item1}
-
静的コンストラクターを呼び出す方法、または静的コンストラクターがC#で呼び出される場合はどうすればよいですか?
静的コンストラクターは、最初のインスタンスが作成される前、または静的メンバーが参照される前に自動的に呼び出されます。 静的コンストラクターは、静的データを初期化するため、または1回だけ実行する必要がある特定のアクションを実行するために使用されます。 C#では、1つの静的コンストラクターのみを作成できます 静的コンストラクターには次のプロパティがあります- 静的コンストラクターは、アクセス修飾子を受け取らないか、パラメーターを持ちません。 クラスまたは構造体は、静的コンストラクターを1つだけ持つことができます。 静的コンストラクターは継承またはオーバーロードできません。
-
C#の同じクラスで別のコンストラクターから1つのコンストラクターを呼び出すにはどうすればよいですか?
これを利用する 別のコンストラクターから1つのコンストラクターを呼び出すためのc#のキーワード 親クラスに存在するコンストラクターを呼び出すには、ベースを使用します キーワード 例 class Demo{ public Demo(){ System.Console.WriteLine("Parameter less constructor called"); } public Demo(int firstNumber, int secondNumber)
-
オブジェクトのインスタンスが静的クラス用に1つだけ作成されていることを証明するにはどうすればよいですか?
この例では、静的デモクラスが作成され、静的変数カウントが宣言されています。 ここでは、count変数はグローバル変数として扱われます。したがって、クラスのインスタンスが1つだけ作成されるため、例では増加し続けます。 例 static class Demo{ public static int count; static Demo(){ System.Console.WriteLine("Static Constuctor called"); } } cl
-
Linq C#のSelectとSelectManyの違いは何ですか?
Select演算子は、射影演算子カテゴリに属するすべてのソースSelectMany演算子に対して1つの結果値を生成します。これは、シーケンスの各要素をIEnumerableに投影し、結果のシーケンスを1つのシーケンスにフラット化するために使用されます。 例 class Demo{ public string Name { get; set; } public List<string> Contents { get; set; } public static List<Demo>GetAll
-
C#の1つのクラスにいくつのデストラクタを含めることができますか?
c#では、デストラクタはクラスの特別なメソッドであり、クラス内で使用されて、クラスのオブジェクトまたはインスタンスを破棄します。 クラス内に存在できるデストラクタは1つだけです 以下は、c#のデストラクタのプロパティです デストラクタはパラメータを取りません デストラクタはチルダ記号(〜)で始まります 構造体(〜)はStructsでは定義できません。 デストラクタを呼び出すことはできません。それらは自動的に呼び出されます。 デストラクタは、オブジェクトの基本クラスでFinalizeを暗黙的に呼び出します。 例 class Demo{ &nbs
-
C#の子クラスから基本クラスコンストラクターを明示的に呼び出す方法は?
これを利用する c#のキーワードを使用して、あるコンストラクターを別のコンストラクターから呼び出す親クラスに存在するコンストラクターを呼び出すには、ベースを使用します。 キーワード 例 別のクラスに存在するコンストラクターを呼び出すには、基本キーワードを使用します class DemoBase{ public DemoBase(int firstNumber, int secondNumber, int thirdNumber){ System.Console.WriteLine("Base class Const
-
C#でビルド、再ビルド、またはクリーンアップするのに適しているのはどれですか?
ソリューションの構築 これにより、インクリメンタルビルドが実行されます。つまり、変更されたコードファイルのみをビルドします。 変更されていない場合、それらのファイルは変更されません。変更されたコードファイル(DLLおよびEXE)をコンパイルします。 ソリューションの再構築 これにより、現在コンパイルされているすべてのファイル(つまり、exeファイルとDLL)が削除され、すべてが最初からビルドされます。 ファイルにコード変更があるかどうかに関係なく。 クリーンソリューション このメニューは、bin / objディレクトリからすべてのコンパイル済みファイル(つまり、EXEとDLL)を削除し
-
Linq C#の和集合、共通部分、および例外演算子とは何ですか?
ユニオン Unionは、複数のコレクションを1つのコレクションに結合し、結果のコレクションを一意の要素とともに返します 交差 Intersectは、両方の入力シーケンスに共通するシーケンス要素を返します を除く ただし、2番目の入力シーケンスに存在しない最初の入力シーケンスからシーケンス要素を返します 例 class Program{ static void Main(){ int[] count1 = { 1, 2, 3, 4 }; int[] count2 = { 2, 4,
-
明示的な実装とは何ですか?C#のインターフェイスでいつ使用するのですか?
クラスが同じ署名を持つメンバーを含む2つのインターフェースを実装する場合、そのメンバーをクラスに実装すると、両方のインターフェースがそのメンバーを実装として使用します。 インターフェイスメンバーを明示的に実装することは可能です。つまり、インターフェイスを介してのみ呼び出され、そのインターフェイスに固有のクラスメンバーを作成します。 例 interface ICar{ void display(); } interface IBike{ void display(); } class ShowRoom : ICar, IBike{  
-
C#でのファイナライズと破棄の違いは何ですか?
ファイナライズ Finalize()は、コレクションに適格なオブジェクトが再利用される前に、ガベージコレクターによって呼び出されます。ガベージコレクタは、参照されていないオブジェクトのメモリの割り当てを解除する責任を負います。ガベージコレクタは、メモリ内にそのオブジェクトへの有効な参照がなくなった後のある時点でこのメソッドを呼び出します。 フレームワークは、これが発生したときにガベージコレクションを強制できることを保証しませんが、プログラムのパフォーマンスを低下させます。 Finalize()はObjectクラスに属し、ランタイムによって呼び出されます。 例 using System; n