C# の問題を 1 つずつ解決 (1): ref パラメーターの受け渡し

黄舟
リリース: 2016-12-22 14:02:40
オリジナル
1659 人が閲覧しました

一般に、メソッドのパラメータは値によって渡されます。つまり、オブジェクトがパラメータとしてメソッドに渡され、オブジェクトはパラメータ オブジェクトが配置されているポインタのメモリ空間に格納されます (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 パラメーターの受け渡し


上記は C# の難しさを 1 つずつ示します (1): ref パラメーターで渡される内容 さらに関連する内容については、PHP に注目してください。中国語のウェブサイト (m.sbmmt.com)!


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!