버그 해결을 위한 모든 질문을 던져
0 votes
297 views
오브젝트 내용을 UI 에 뿌려주고 수정할수 있게 하려고 합니다

기본적으로 리플렉션을 사용해서 뿌려주고 수정하는데 문제가 없는데요

public class A
    {
        public int _b;
    }

 

이런 클래스가 있다면

A foo = new A();

            var info = foo.GetType().GetField("_b");

            info.SetValue(foo, 10);

 

요렇게 UI 에 object와 fieldInfo 를 넘겨줘서 세팅하게 했습니다.

 

그런데 리스트 필드는 이렇게 처리할수가 없네요???

 

public class A
    {
        public List<int> _c = new List<int>();
    }

 

_c에 새로운 리스트를 세팅하는게 아니라 리스트 내용물만 바꾸고 싶은거니까요
asked (39 point) , 297 views

1 답변

0 votes
우수 답변
List 는 필드를 변경 하는게 아니라 메소드콜을 통해 추가해주면 됩니다.

 

using System;
using System.Collections.Generic;
                    
public class Program
{
    public static void Main()
    {
        List<int> a = new List<int>();
        a.Add(1);
        var type = a.GetType();
        var method = type.GetMethod("Add");
        method.Invoke(a , new object[]{1});
        
        System.Console.WriteLine($"{a[0]}");
    }
}
answered (343 point)
선택됨
add가 아니라 값을 수정해야하는데

[] 는 method 를 어떻게 얻어올수 있을까요?

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

620 질문
784 answers
748 댓글
118,442 users