class Target { public void Do(Source obj) { Console.WriteLine(obj.GetResult()); Console.WriteLine(obj.index); } } class Source { Source source1 = new Source(2); //----[이 코드를 주석처리하면 에러 제거]---- public int index; public Source(int index) { this.index = index; } public int GetResult() { return 10; } public void Test() { //Source source1 = new Source(2); //----[에러 발생 코드를 여기다 옮겨놓으면 에러 제거]---- Target target = new Target(); target.Do(this); } } class program { static void Main() { Source source = new Source(1); source.Test(); } }