C\#익명 대상 속성 값 을 읽 는 방법 예시 요약

본 고의 실례 는 C\#가 익명 대상 의 속성 값 을 읽 는 방법 을 설명 한다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
new 를 통 해 익명 대상 을 내 보 내 면 이 익명 대상 의 속성 명 을 직접 호출 하여 속성 값 을 얻 을 수 있 습 니 다.

var objUser = new {Name="Lilei",Age=18 };
//            
Console.WriteLine("Name:" + objUser.Name);// Name:Lilei

그러나 익명 의 대상 을 object 로 변환 하면 속성 값 을 직접 읽 을 수 없습니다.

static object GetObj()
{
 var obj = new { Name = "Lilei", Age = 18 };
 return obj;
}
static void Main(string[] args)
{
 var obj = GetObj();//       obj.Name         
}

1、반사 방식 으로 속성 값 획득

static object GetObj()
{
 var obj = new { Name = "Lilei", Age = 18 };
 return obj;
}
static void Main(string[] args)
{
 var obj = GetObj();
 //               
 string objName = obj.GetType().GetProperty("Name").GetValue(obj).ToString();
 Console.WriteLine(objName);// Lilei
}

2.확장 방법 을 새로 만 들 고 object 를 익명 의 대상 으로 전환 합 니 다.

class Program
{
 static void Main(string[] args)
 {
  var obj = GetObj();
  var user = obj.ObjCast(new { Name = "", Age = 0 });
  Console.WriteLine("Name:{0},Age:{1}", user.Name, user.Age);// Name:Lilei,Age:18

  var objList = GetObjList();
  var userList = objList.Select(p => p.ObjCast(new { Name = "", Age = 0 })).ToList();
  userList.ForEach(p =>
  {
   Console.WriteLine("Name:{0},Age:{1}", p.Name, p.Age);
  });
  // Name:Lilei,Age:18
  // Name:HanMeimei,Age:20
 }
 static object GetObj()
 {
  var obj = new { Name = "Lilei", Age = 18 };
  return obj;
 }
 static List<object> GetObjList()
 {
  List<object> objList = new List<object>();
  objList.Add(new { Name = "Lilei", Age = 18 });
  objList.Add(new { Name = "HanMeimei", Age = 20 });
  return objList;
 }
}
static class Extensions
{
 public static T ObjCast<T>(this object obj, T sample)
 {
  return (T)obj;
 }
}

더 많은 C\#관련 내용 에 관심 이 있 는 독 자 는 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 C\#프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기