csharp 【C#】参考キーワードで参照型を参照渡しした时の挙动に关して

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 【C#】参考キーワードで参照型を参照渡しした时の挙动に关して相关的知识,希望对你有一定的参考价值。

class RefTest
{
	public void MainMethod()
	{
		RefTestClass a = new RefTestClass();
		a.VAL = "test";

		test(ref a);
		Console.WriteLine(a.VAL); // vvalvalnew が返ってくる。 

		test2(a);
		Console.WriteLine(a.VAL); // valval2 が返ってくる。 
	}

	/// <summary>
	/// ref付き参照型渡し 
	/// 参照する場所を変更できる。 
	/// </summary>
	/// <param name="val"></param>
	private static void test(ref RefTestClass val)
	{
		val.VAL = "valval"; // コール元メソッドから見て、この処理は有効 
		val = new RefTestClass(); // 参照する場所を変更した、と同等の処理 
		val.VAL = "valvalnew"; // コール元メソッドから見て、この処理は有効! 
	}

	/// <summary>
	/// ref無し参照型渡し 
	/// 参照する場所を変更できない。 
	/// </summary>
	/// <param name="val"></param>
	private static void test2(RefTestClass val)
	{
		val.VAL = "valval2"; // コール元メソッドから見て、この処理は有効 
		val = new RefTestClass(); // newはしたが、このメソッド内だけのスコープ(返らない) 
		val.VAL = "valval2new"; // コール元メソッドから見て、この処理は無効 
	}
}

public class RefTestClass
{
	public string VAL { get; set; }
}

以上是关于csharp 【C#】参考キーワードで参照型を参照渡しした时の挙动に关して的主要内容,如果未能解决你的问题,请参考以下文章

r キーワードモニタ

r キーワードレベルの调整

r キーワード合成·アカウント情报付与

sh 谷歌:未指定キーワードを発生させずに検索する

text cvs,subversionのIdキーワードの行を削除して,书き换える#code #sh

csharp C#からMsBuildをコードで実行(Microsoft.Build名前空间,BuildManager)