0
개체에 대한 참조를 저장해야 해당 참조가 역 참조 될 때마다 개체 값이 업데이트됩니다. 간단한 예를 들어 내가 a.func()
의 반환 값을 DEREF 할 때 개체에 대한 참조 저장
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));
}
}
}
그래서
func
대신
T
의
ref T
를 반환하고,
Main
방법으로해야한다, 내가 예상 답변을 얻을 수있을 것입니다. C#에서 어떻게 만들 수 있습니까?
코드 주석에 언급 된 요구 사항은 변경할 수 없지만 더 나은 해결책이 있다면 제안하십시오.
저는 C#이 좋지 않지만 예제가 컴파일되지 않습니다. http://rextester.com/PNXRI65492 확인하십시오. –
@ JaneDorothy 이것은 Rextester의 문제인 것 같습니다. 예를 들어 Linqpad로 컴파일하면 다음과 같이 작동합니다. http://csharppad.com/gist/11e494cc65b43ad5fd90cb273c8e629c - 어쨌든 VS를 사용하는 것이 좋습니다. 온라인 컴파일러가 유용합니다. 짧은 코드 테스트는 가능하지만 실제 프로그래밍에는 적합하지 않습니다. – MetaColon
물론 저는 C# 패드를 사용합니다. – MetaColon