GetType():获取当前实例的System.Type.
现在有两个类:Student
和 StudentDTO如下:
Student类::
public class Student
{
public Student()
{
}
public virtual string Id { get; set; }
public virtual string StudentNo { get; set; }
public virtual string Name { get; set; }
public virtual string ClassId { get; set; }
public virtual string ProfessionId { get; set; }
public virtual string CollegeId { get; set; }
public virtual int Phone { get; set; }
public virtual int Sex { get; set; }
public virtual string Address { get; set; }
}
StudentDTO类:
public class StudentDTO
{ public StudentDTO()
{
}
public virtual string Id { get; set; }
public virtual string StudentNo { get; set; }
public virtual string Name { get; set; }
public virtual string ClassId { get; set; }
public virtual string ProfessionId { get; set; }
public virtual string CollegeId { get; set; }
public virtual int Phone { get; set; }
public virtual int Sex { get; set; }
public virtual int TeacherId { get; set; }
}
现在创建一个Student:
Student student = new Student();
student.Id = Guid.NewGuid().ToString();
student.Name = "张三";
student.StudentNo = "T001";
student.Phone = 10086;
student.Sex = 1;
student.CollegeId = Guid.NewGuid().ToString();
student.ClassId = Guid.NewGuid().ToString();
student.ProfessionId = Guid.NewGuid().ToString();
student.Address = "福建";
现在创建一个Student的DTO类StudentDTO并把Student的信息赋给StudentDTO,常用的方法是:
StudentDTO studentDTO = new StudentDTO();
studentDTO.Id = student.Id;
studentDTO.Name = student.Name;
studentDTO.StudentNo = student.StudentNo;
studentDTO.Phone = student.Phone;
studentDTO.Sex = student.Sex;
studentDTO.CollegeId = student.CollegeId;
studentDTO.ClassId = student.ClassId;
studentDTO.ProfessionId = student.ProfessionId;
而使用GetType()也可以实现:
foreach (var item in student.GetType().GetProperties()) //返回Student的所有公共属性 {
var value = item.GetValue(student, null); //返回属性值 var setobj = studentDTO.GetType().GetProperty(item.Name); //搜索具有指定属性名称的公共属性 if (value != null && setobj != null)
{
setobj.SetValue(studentDTO, value, null);
}
}
这样看起来代码会简洁些......呵呵,只是个人感觉这个GetType()方法挺好用的就记录起来了.......
例如,如果一个函数接受一个object类型的参数,就可以在遇到某些对象时执行额外的任务,联合使用getype()
和 typeof() ,就可以进行比较,如下所示:
//....