이것은 지금 당황 스럽습니다. 다른 클래스를 포함하는 클래스가 있습니다. 첫 번째 클래스에서 두 번째 클래스의 typeof를 찾은 다음 루프 필드의 값을 가져와야합니다. 이 유효한 필드 아니므로클래스 내의 필드 값을 가져옵니다.
아래의 코드는 분명히 선
Console.WriteLine(field.GetValue(mFC.field.secondClassString));
에 실패합니다. 아마도 나는이 잘못된 방향으로 가고 있습니다 - 어떤 생각입니까?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
MyFirstClass mFC = new MyFirstClass();
FieldInfo[] fI = mFC.GetType().GetFields();
foreach (FieldInfo field in fI)
{
if (field.FieldType.Name == "MySecondClass")
{
//get the fields
Console.WriteLine(field.GetValue(mFC.field.secondClassString));
}
}
}
}
class MyFirstClass
{
public MySecondClass firstMSC = new MySecondClass("First Instance");
public MySecondClass secondMSC = new MySecondClass("Second Instance");
public string firstClassString = "I'm from the first class";
public int firstClassInt = 5;
}
class MySecondClass
{
public MySecondClass(string input)
{
this.secondClassString = input;
}
public string secondClassString;
public int secondClassInt = 10;
}
}
그 중 하나! 내부 클래스에 캐스팅이 필요했습니다. 덕분에 – user1156000
나는 표면 전체에 다시 던지려고 노력했다. 어떻게해야합니까? MySecondClass newClass = (MySecondClass) .field ..... – user1156000
MySecondClass c = (MySecondClass) field.GetValue (mFC); 당신은 이것을 할 수 있습니다 – Bunny