class Member
{
public int b;
}
class MemberWrapper
{
public Member m = new Member();
public int a;
}
class ExampleClass
{
public Action lambda;
public ExampleClass(MemberWrapper wrapper)
{
var tempForCopy = wrapper;
tempForCopy.a = 10;
lambda = () => Func(tempForCopy);
tempForCopy.a = 100;
}
public void RunLambda()
{
lambda();
}
public static void Func(MemberWrapper w)
{
Console.WriteLine(w.a);
Console.WriteLine(w.m.b);
}
}
static void Main(string[] args)
{
var wrapper = new MemberWrapper();
var instance = new ExampleClass(wrapper);
wrapper.m = null;
instance.RunLambda();
return;
}
결과 :
콘솔에 100 출력후
null 참조.
'개발 🛠💻 > .NET Framework C#' 카테고리의 다른 글
C# 메모 (0) | 2023.05.09 |
---|---|
C# Linq 지연평가 (0) | 2023.04.14 |
C#의 Pass by reference, ref 키워드 (0) | 2023.04.04 |
댓글