C# の問題を 1 つずつ解決 (1): ref パラメーターの受け渡し
一般に、メソッドのパラメータは値によって渡されます。つまり、オブジェクトがパラメータとしてメソッドに渡され、オブジェクトはパラメータ オブジェクトが配置されているポインタのメモリ空間に格納されます (C を使用して説明)つまり、オブジェクトはこの場所にコピーが作成され、メソッドが終了すると破棄されます。この転送メソッドの使用は、毎日のメソッド パラメータ転送の大部分を占めます。
もう 1 つの状況は参照の受け渡しです。これは値の受け渡しとは異なり、オブジェクトがメソッドのパラメーターに渡されるときは、元のパラメーター値の影響を受けるメソッドが返されます。 MethodInstance(ref _refValue) は Method (ref _arg) メソッドを呼び出しますが、_refValue は Method に影響を与えず、_arg の影響を受けた結果が返されます。 _arg は使用前に代入する必要があるとも考えられます。
例:
もう 1 つの状況は、値の受け渡しとは異なる参照の受け渡しです。オブジェクトがメソッドに渡されるとき、返されるのは元のパラメーター値の影響を受けるメソッドです。つまり、MethodInstance(ref _refValue) は Method (ref _arg) メソッドを呼び出しますが、_refValue は Method に影響を与えず、_arg の影響を受けた結果が返されます。 _arg は使用前に代入する必要があるとも考えられます。
例:
using System; /****************************** * Chapter:C#难点逐个击破(一) * Author:王洪剑 * Date:2010-1-11 * Blog:http://www.51obj.cn/ * Email:walkingp@126.com * Description:重点讲解值传递方式与引用传递方式 * ***************************/ namespace Wang.TestRef { public class NormalClass { public void ShowNormalResult(string name) { name = "Wang Hongjian"; Console.WriteLine(name); } } public class RefClass { /// <summary> /// 引用类型ref类 /// </summary> /// <param name="name"></param> public void ShowRefResult(ref string name) { name = "Wang Hongjian"; Console.WriteLine(name); } } class Program { static void Main(string[] args) { string _name = "Zhou Runfa";//传递参数 #region 值传递参数方式 NormalClass n = new NormalClass(); n.ShowNormalResult(_name);//正常调用 #endregion #region 引用传递参数方式 RefClass o = new RefClass(); o.ShowRefResult(ref _name);//结果仍然为引用传递参数 Console.ReadKey(); #endregion } } }
操作結果:
上記は C# の難しさを 1 つずつ示します (1): ref パラメーターで渡される内容 さらに関連する内容については、PHP に注目してください。中国語のウェブサイト (www.php.cn)!

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











C# を使用した Active Directory のガイド。ここでは、Active Directory の概要と、C# での動作方法について、構文と例とともに説明します。

C# データ グリッド ビューのガイド。ここでは、SQL データベースまたは Excel ファイルからデータ グリッド ビューをロードおよびエクスポートする方法の例について説明します。

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