C\#속성 이름 문자열 을 통 해 대상 속성 값 을 가 져 오고 설정 합 니 다.
\#반사 로 대상 속성 값 을 획득 하고 속성 값 을 설정 합 니 다.
0.클래스 정의
 public class User
 { 
  public int Id { get; set; }
  public string Name { get; set; }
  public string Age { get; set; }
 }
 User u = new User();
 u.Name = "lily";
 var propName = "Name";
 var propNameVal = u.GetType().GetProperty(propName).GetValue(u, null);
 
 Console.WriteLine(propNameVal);// "lily"
 User u = new User();
 u.Name = "lily";
 var propName = "Name";
 var newVal = "MeiMei";
 u.GetType().GetProperty(propName).SetValue(u, newVal);
 
 Console.WriteLine(propNameVal);// "MeiMei"
클래스 의 대상 을 통 해 실현
 User u = new User();
 foreach (var item in u.GetType().GetProperties())
 {
  Console.WriteLine($"propName:{item.Name},propType:{item.PropertyType.Name}");
 }
 // propName: Id,propType: Int32
 // propName:Name,propType: String
 // propName:Age,propType: String
 foreach (var item in typeof(User).GetProperties())
 {
  Console.WriteLine($"propName:{item.Name},propType:{item.PropertyType.Name}");
 }
 // propName: Id,propType: Int32
 // propName:Name,propType: String
 // propName:Age,propType: String
 static void Main(string[] args)
 {
  User u = new User();
  bool isContain= ContainProperty(u,"Name");// true
 }
 public static bool ContainProperty( object instance, string propertyName)
 {
  if (instance != null && !string.IsNullOrEmpty(propertyName))
  {
   PropertyInfo _findedPropertyInfo = instance.GetType().GetProperty(propertyName);
   return (_findedPropertyInfo != null);
  }
  return false;
 }
 public static class ExtendLibrary
 {
  /// <summary>
  ///                  
  /// </summary>
  /// <param name="instance">object</param>
  /// <param name="propertyName">       </param>
  /// <returns>    </returns>
  public static bool ContainProperty(this object instance, string propertyName)
  {
   if (instance != null && !string.IsNullOrEmpty(propertyName))
   {
    PropertyInfo _findedPropertyInfo = instance.GetType().GetProperty(propertyName);
    return (_findedPropertyInfo != null);
   }
   return false;
  }
 }
 static void Main(string[] args)
 {
  User u = new User();
  bool isContain= u.ContainProperty("Name");// true
 }
본 고 에서 말 한 것 이 여러분 의 C\#프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.