C# の out と ref についてどう思いますか?それらの違いを調べてください
C# を学習していると、似ていながらも使用法が異なる言語コマンドなどに必ず遭遇します。今日は、C# の out と ref の違いについて説明します。まず、使用法について説明します。それぞれの、以下に out と ref の違いをまとめます。 apache php mysql
どちらもアドレスで渡され、元のパラメータの値は使用後に変更されます。
ref はパラメーターの値を関数に渡すことができますが、out はパラメーターをクリアする必要があります。つまり、out から値を渡すことはできません。out が入力された後、パラメーターの値は空になります。そのため、一度初期化する必要があります。これがこの2つの違いで、一部のネチズンが言ったように、refは出入りの両方を意味し、outは外出するだけで中には入らないことを意味します。
ref (C# リファレンス)
ref キーワードを使用すると、パラメーターが参照によって渡されます。その結果、制御が呼び出し側メソッドに戻されると、メソッド内のパラメータへの変更が変数に反映されます。 ref パラメーターを使用するには、メソッド定義とメソッド呼び出しの両方で明示的に ref キーワードを使用する必要があります。 ######例えば:###############
12
4 5 6 ###7### 89 10 11 12 13 14
クラス 参考例
| {
void ref i = 44; } Main()
int
}
|
2
3
5 6 ###7###
クラス CS0663_Example
{ |
void int int #1 | 3
5
クラス RefOutOverloadExample { |
public
|
ref キーワードと out キーワードは、実行時には異なる方法で処理されますが、コンパイル時には同じ方法で処理されます。したがって、1 つのメソッドが ref パラメーターを受け取り、別のメソッドが out パラメーターを受け取る場合、両方のメソッドをオーバーロードすることはできません。たとえば、次のコードの 2 つのメソッドはコンパイルの観点からは同一であるため、次のコードはコンパイルされません:
2 3 4 5 6 ###7###クラス | CS0663_Example
| ただし、1 つのメソッドが ref または out パラメータを受け取り、別のメソッドがこれら 2 種類のパラメータを受け取らない場合は、次のようにオーバーロードできます。
3 4 5 クラス | RefOutOverloadExample
以下は私の経験に基づいてまとめたものです: 違い ref と out の違い C# では、パラメーターは値またはによって渡すことができます。参照 。パラメーターを参照渡しすると、関数メンバーがパラメーターの値を変更し、その変更を保持できるようになります。パラメータを参照によって渡すには、ref または out キーワードを使用します。 ref キーワードと out キーワードはどちらも同様の関数を提供し、C のポインター変数とよく似た機能を提供します。両者の違いは次のとおりです: 1. ref 型パラメータを使用する場合、渡されるパラメータを最初に初期化する必要があります。 out の場合は、メソッド内で初期化する必要があります。 2. ref と out を使用する場合、メソッドのパラメータとメソッドの実行時に Ref または Out キーワードを追加する必要があります。試合を満足させるために。 3. Out は、retrun が複数の戻り値を必要とする場合の使用に適しており、ref は、呼び出されたメソッドが呼び出し元の参照を変更する必要がある場合に使用されます。 メソッド パラメーターの out メソッド パラメーター キーワードにより、メソッド参照がメソッドの同じ変数に渡されます。メソッド内のパラメータに加えられた変更は、制御が呼び出し側メソッドに戻されるときにこの変数に反映されます。 out メソッドの宣言は、メソッドが複数の値を返すようにする場合に便利です。 out パラメーターを使用するメソッドは引き続き値を返すことができます。メソッドには複数の out パラメーターを含めることができます。 out パラメーターを使用するには、パラメーターを out パラメーターとしてメソッドに明示的に渡す必要があります。 out パラメータの値は out パラメータに渡されません。 出力パラメータとして渡される変数は初期化する必要はありません。ただし、メソッドが戻る前に、out パラメータに値を割り当てる必要があります。 プロパティは変数ではないため、出力パラメータとして渡すことはできません。 つまり、これを一文にまとめると、ref は入ることと出ることの両方を意味し、out は出るだけで入ってこないことを意味します。 関連記事: |
以上がC# の out と ref についてどう思いますか?それらの違いを調べてくださいの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









C言語では、以下などのエスケープシーケンスを通じて特殊文字が処理されます。\ nはラインブレークを表します。 \ tはタブ文字を意味します。 ESACEシーケンスまたは文字定数を使用して、Char C = '\ n'などの特殊文字を表します。バックスラッシュは2回逃げる必要があることに注意してください。さまざまなプラットフォームとコンパイラが異なるエスケープシーケンスを持っている場合があります。ドキュメントを参照してください。

Cでは、文字列でCharタイプが使用されます。1。単一の文字を保存します。 2。配列を使用して文字列を表し、ヌルターミネーターで終了します。 3。文字列操作関数を介して動作します。 4.キーボードから文字列を読み取りまたは出力します。

c言語のシンボルの使用方法は、算術、割り当て、条件、ロジック、ビット演算子などをカバーします。算術演算子は基本的な数学的操作に使用されます。割り当てと追加、下位、乗算、除算の割り当てには、条件操作に使用されます。ポインター、ファイル終了マーカー、および非数値値。

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

C言語では、charとwchar_tの主な違いは文字エンコードです。CharはASCIIを使用するか、ASCIIを拡張し、WCHAR_TはUnicodeを使用します。 Charは1〜2バイトを占め、WCHAR_Tは2〜4バイトを占有します。 charは英語のテキストに適しており、wchar_tは多言語テキストに適しています。 CHARは広くサポートされており、WCHAR_TはコンパイラとオペレーティングシステムがUnicodeをサポートするかどうかに依存します。 CHARの文字範囲は限られており、WCHAR_Tの文字範囲が大きく、特別な機能が算術演算に使用されます。

C言語では、charタイプの変換は、キャスト:キャスト文字を使用することにより、別のタイプに直接変換できます。自動タイプ変換:あるタイプのデータが別のタイプの値に対応できる場合、コンパイラは自動的に変換します。

Char Arrayは文字シーケンスをC言語で保存し、char array_name [size]として宣言されます。アクセス要素はサブスクリプト演算子に渡され、要素は文字列のエンドポイントを表すnullターミネーター「\ 0」で終了します。 C言語は、strlen()、strcpy()、strcat()、strcmp()など、さまざまな文字列操作関数を提供します。

C言語に組み込みの合計機能はないため、自分で書く必要があります。合計は、配列を通過して要素を蓄積することで達成できます。ループバージョン:合計は、ループとアレイの長さを使用して計算されます。ポインターバージョン:ポインターを使用してアレイ要素を指し示し、効率的な合計が自己概要ポインターを通じて達成されます。アレイバージョンを動的に割り当てます:[アレイ]を動的に割り当ててメモリを自分で管理し、メモリの漏れを防ぐために割り当てられたメモリが解放されます。
