オブジェクトへの参照を格納して、その参照が参照解除されるとオブジェクトの値が更新されるようにする必要があります。簡単な例ではそうfunc
がref T
代わりのT
を返すべきであるオブジェクトへの参照を格納する
using System.Collections.Generic;
namespace ABCD
{
public class ClassA<T>{
T t;
public T func(T num){
t = (T)(object)(2*(double)(object)num);//t has to be assigned in this method (not in func2)
T x = func2();
t = (T)(object)(3*(double)(object)num);//t will be reassigned here, and I want this to be reflected in x
return x;//I want x to be 9 not 6
}
public T func2(){
return t;
}
}
public class Program
{
public static void Main(string[] args)
{
ClassA<double> a = new ClassA<double>();
System.Console.WriteLine(a.func(3.0));
}
}
}
ある、と私はa.func()
の戻り値をDEREFだろうというときMain
方法では、私が期待される答えを得ることができるだろう。これをC#でどうやって行うことができますか?
コードコメントに記載されている要件は変更できませんが、より良いソリューションがあればお勧めします。
私はC#ではうまくいかず、あなたの例はコンパイルされません。 http://rextester.com/PNXRI65492ご確認ください。 –
@ JaneDorothyこれはrextesterの問題だと思われます。もしあなたがLinqpadを使ってコンパイルすれば、それはうまくいきます。http://csharppad.com/gist/11e494cc65b43ad5fd90cb273c8e629c - 私はVSをとにかく使うことを勧めます。ショートコードテストではなく、実際のプログラミングでは使用できません。 – MetaColon
もちろん、私はC#パッドに触れています。 – MetaColon