もっと詳しく
「この記事では、C#プログラミング言語での演算子のオーバーロードの概念について説明します。 通常の演算子に従来の操作以外の操作を実行させる方法は、演算子のオーバーロードの基本的な意味です。 C#を使用すると、オーバーロード可能演算子と非オーバーロード可能演算子の2種類の演算子があるため、ユーザーはオーバーロード可能であるいくつかの演算子を事前定義できます。 単項演算子と二項演算子は、C#プログラミング言語のオーバーロード可能な演算子です。 残りの演算子はオーバーロードできない演算子ですが、一部の演算子は論理演算子、複合演算子、キャスト演算子です。」

演算子のオーバーロード

演算子のオーバーロードの概念を理解するために、使用する最も基本的で一般的にオーバーロードされる演算子である「+」演算子を実装します。 通常、「+」演算子は2つの数値を加算するために使用されます。 ただし、文字列と数値の間に書き込むと、両方が連結されます。 これは、単項演算子をオーバーロードする良い例です。

上記のC#プログラムでは、「+」演算子を使用して1行目に2つの数値を追加し、2行目に同じ演算子を使用して文字列と数値を加算するという単純な関数を示しました。演算子をオーバーロードしているため、wordは文字列と数値を連結します。

中程度の信頼度で自動的に生成されたコンピューターの説明のスクリーンショット

上記のプログラムの出力は、「+」演算子の二重の性質を示しています。 最初の操作では、結果の2つの数値を4として加算するだけですが、他の操作では、「+」演算子は、C#プログラミングで事前定義されているように、文字列を数値に連結するエージェントとして機能します。言語。

次に、演算子のオーバーロードに関するいくつかの例を見ていきます。ここでは、「operator」キーワードを使用して、特定の演算子のオーバーロードとして記述します。

例01:Ubuntu20.04での「-」演算子のオーバーロード

この例では、オーバーロードメソッドの継承による演算子の広範なオーバーロードに焦点を当てます。 この場合、「-」演算子はオーバーロードされます。 整数変数の値は「-」演算子に割り当てられます。 ただし、「-」の通常の動作は、オーバーロードによって変更されます。 代数を使用して、「-」演算子を数値に指定できる記号に変換します。

自動的に生成されたテキストの説明

上記の例では、2つの整数変数があり、それらの値を他の2つの整数に置き換えています。 次に、「-」演算子の従来の操作が再定義された「operator」キーワードを使用してオーバーロード関数を作成しました。 次に、メインプログラムでオーバーロードされた演算子を呼び出して、通常の演算子とオーバーロードされた演算子の違いを確認しました。 上記のプログラムをコンパイルして実行すると、次の結果が得られます。

自動的に生成されたテキストの説明

演算子がオーバーロードされ、オーバーロードされたメソッドの事前定義された関数が最後の呼び出しで実行されていることがわかります。

例02:Ubuntu20.04での「+」演算子のオーバーロード

前に説明したように、「+」演算子はオーバーロードされ、複数の操作を実行できますが、メソッドとクラスオブジェクトの継承によってオーバーロードされる可能性があります。 この例では、「+」演算子をオーバーロードして、「+」演算子を作成し、「+」演算子の事前定義された関数である数値ではなく、クラスの2つのオブジェクトを追加します。 「+」演算子は、「operator」キーワードメソッドを使用してオーバーロードされます。

このC#プログラムでは、「+」演算子をオーバーロードするためのメソッドを作成します。 まず、クラスを作成し、オーバーロードメソッドでそのオブジェクトを呼び出します。 これらのオブジェクトは、「+」演算子の機能を定義する際に使用されます。「+」演算子は、「+」演算子を使用して2つのオブジェクトをクラスに追加します。 次に、「num」オブジェクトを表示するDisplayメソッドが作成されます。 メインプログラムでは、新しいオブジェクトを作成してクラスに値を割り当ててから、オーバーロードされた「+」演算子を使用して2つのオブジェクトを相互に追加します。 上記のプログラムをコンパイルすると、次のような出力が得られます。

自動的に生成されたテキストの説明

クラスのオブジェクト値は「5」と「10」で、これらのオブジェクトの合計は「15」です。これは、「+」演算子をオーバーロードして、の2つのオブジェクトを追加したことを示しています。通常2つの整数を加算するのと同じように、クラス化してそれらを合計し、結果を求めます。

例03:Ubuntu20.04での「*」演算子のオーバーロード

この例では、「*」演算子をオーバーロードする方法について説明します。 operatorキーワードは、「*」演算子のオーバーロードメソッドを提供するために使用されます。 「*」演算子の基本的な仕事は2つの整数を乗算することですが、この例では、クラスの2つのオブジェクトを乗算し、それらを2つの数値として扱うように定義することにより、オーバーロードします。

グラフィカルユーザーインターフェイス、テキスト、アプリケーションの説明が自動的に生成されます

オブジェクトに整数を割り当てたパブリックメソッドを作成しました。 次に、シンボルとパラメーターの前にoperatorキーワードを使用して、「*」演算子をオーバーロードするためのパブリックメソッドを作成しました。 この関数のパラメーターは、前のクラスのオブジェクトです。 したがって、前のクラスエンティティを継承し、新しいオブジェクトで相互に乗算され、このオブジェクトがこのメソッドから返されます。 main関数では、3つの新しいオブジェクトを作成し、そのうちの2つにパラメーターの値を割り当てます。 次に、これらのオブジェクトはオーバーロードされた演算子を使用して乗算され、結果はハウ出力画面に表示されます。 上記のプログラムを正常にコンパイルして実行すると、スニペットに示すように、次の結果が得られます。

自動的に生成されたテキストの説明

ご覧のとおり、最初の2つの数値は、Examクラスのオブジェクトを返すdisplay関数を使用して表示されます。 次に、これら2つのオブジェクトの乗算の結果の値は「50」になります。「*」演算子はオーバーロードのために2つの数値の積のみを取りますが、演算子は2つのオブジェクトも正常に乗算しました。

例04:Ubuntu20.04での等式演算子のオーバーロード

ここで、C#プログラミング言語で等式演算子をオーバーロードします。 この例では、変数に値を割り当てるための通常の関数ではなく、クラスのオブジェクトを比較するために等式演算子が使用されます。 このシナリオでは、オブジェクトの値は同じになりますが、区別するために、別の参照を使用して、この操作の結果の違いを確認します。

自動的に生成されたテキストの説明

前述のC#プログラムでクラス「Exam」を作成し、その中の特定の変数を初期化します。これは、組み込み関数「Display()」で使用します。 続いて、「Exam」クラスの2つのオブジェクトに同等の番号を付け、3番目のアイテムが2番目のアイテムから参照されたため、それらを比較して、同じ結果になります。 Ubuntu 20.04コマンドラインターミナルで、前述のアプリケーションを実行してこの機能をテストします。

自動的に生成されたテキストの説明

最初の比較は成功しなかったことがわかりますが、2番目の比較は同じ参照を持っていたためです。

結論

この記事では、演算子のオーバーロードの基本的な概念について説明しました。 C#プログラミング言語では、演算子の読み込みの概念が可能であり、数値を追加して文字列を連結する「+」演算子に関しても、これをすでに採用しています。 オーバーロード可能な演算子は、オーバーロードメソッドがどのように作成されるかをよりよく理解するために、Ubuntu20.04環境で説明および実装されました。

The post C#演算子のオーバーロード appeared first on Gamingsym Japan.