1)使用泛型,获取不同对象的继承属性
using System;
namespace ConsoleApp10
{
class Program
{
static void Main(string[] args)
{
//初始化老师
Teacher teacherModel = new Teacher
{
ID = Guid.NewGuid().ToString(),
Name = "张老师",
TeacherNo = "T001"
};
//初始化学生
Student studentModel = new Student
{
ID = Guid.NewGuid().ToString(),
Name = "李学生",
StudentNo = "S001"
};
//获取老师和学生的同一属性(ID)
string teacherID = GetPersonID<Teacher>(teacherModel);
string studentID = GetPersonID<Student>(studentModel);
}
/// <summary>
/// 获取不同对象的相同属性,两个对象继承同一个父亲类
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="o"></param>
/// <returns></returns>
static string GetPersonID<T>(T o) where T : Person
{
T item = o as T;
return item.ID;
}
}
//老师类,继承人员类
class Teacher : Person
{
public string TeacherNo { get; set; }
}
//学生类,继承人员类
class Student : Person
{
public string StudentNo { get; set; }
}
//人员类
class Person
{
public string ID { get; set; }
public string Name { get; set; }
}
}
2)使用泛型,将对象保存到数据库
using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp10
{
class Program
{
static void Main(string[] args)
{
//将老师对象插入数据库,返回对象
Teacher teacherModel = new Teacher
{
TeacherNo = "T001",
TeacherName = "张老师",
};
Teacher resultTeacher = Insert(teacherModel);
//将学生对象插入数据库,返回对象
Student studentModel = new Student
{
StudentNo = "S001",
StudentName = "李学生",
};
Student resultStudent = Insert(studentModel);
}
/// <summary>
/// 插入对象,并返回,可以获取到主键
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="item"></param>
/// <returns></returns>
private static T Insert<T>(T item) where T : class, new()
{
return item;
}
}
//老师类
class Teacher
{
public string TeacherID { get; set; }
public string TeacherNo { get; set; }
public string TeacherName { get; set; }
}
//学生类
class Student
{
public string StudentID { get; set; }
public string StudentNo { get; set; }
public string StudentName { get; set; }
}
}