値渡し (値渡し) とアドレス渡し (参照渡し) は、それぞれパラメーターを渡す通常の方法と ref 宣言の方法です。アドレス渡しメソッドは、使用する前に ref キーワードで変更する必要があります。出力リターン転送は ref と多くの類似点がありますが、重要な違いは、前のセクションで説明した ref が参照先メソッド内で初期化される必要があることです。
using System; /****************************** * Chapter:C#难点逐个击破(一) * Author:王洪剑 * Date:2010-1-15 * Blog:http://www.51obj.cn/ * Email:walkingp@126.com * Description:重点讲解输出参数out * ***************************/ namespace TestOut { class Program { ////// out的输出值、返回值 /// /// ///static string OutResultMethod(out string name) { string _name = "Wang Hongjian"; name = _name; string __name = "Zheng Zi"; return __name; } static void Main(string[] args) { string _name = "Zhang Yu"; Console.WriteLine("调用前:{0}", _name); string result= OutResultMethod(out _name); Console.WriteLine("调用后:{0}",_name); Console.WriteLine("返回结果:{0}",result); Console.ReadKey(); } } }
実行結果:
out は複数の値を返すことができるため、配列を使用することを考えたことがあるでしょう。良い方法は、配列自体が同じ型のパラメーターをパッケージ化してオブジェクトに「カプセル化」し、それらをメソッドに渡すことです。これにより、複数パラメーターのメソッドの作成が簡素化され、オーバーロードと同様の効果が得られます。
class Program { ////// out的输出值、返回值 /// /// ///static string OutResultMethod(out string name,out string password) { string _name = "Wang Hongjian"; name = _name; string _password = "123456"; password = _password; string __name = "Zheng Zi"; return __name; } static void Main(string[] args) { string _name = "Zhang Yu"; string _password; Console.WriteLine("调用前:{0}", _name); string result = OutResultMethod(out _name, out _password);//多个参数传递 Console.WriteLine("调用后:{0}",_name); Console.WriteLine("返回结果:{0}",result); Console.ReadKey(); } }
操作の効果:
上記は、C# の難易度を 1 つずつ分解する内容です (2):out return パラメーターの詳細については、PHP 中国語 Web サイト (www. php.cn)!