public class Access
{
public Entity eeee { get; set; }
public Permission<eeee.GetType()> pppp { get; set; }
}
public class Entity
{
}
public class Permission<T>
{
public bool CanView {get;set;}
public bool CanEdit {get;set;}
public bool CanDelete {get;set;}
}
public class Photo:Entity
{
}
public class PhotoPermission:Permission<Photo>
{
public bool CanTag {get;set;}
}
public class Video:Entity
{
}
public class VideoPermission:Permission<Video>
{
public bool CanFastForward {get;set;}
}
因此,如果eeee
的类型为Photo
,则pppp
的“类型”应为Permission<Photo>
是否有类似eeee.GetType()
答案 0 :(得分:1)
您似乎可以非常轻松地将Access
课程更改为
public class Access<T>
{
public T eeee { get; set; }
public Permission<T> pppp { get; set; }
}
答案 1 :(得分:0)
泛型背后的想法是泛型类型在运行时是已知的;因此,您的代码将无法编译。我建议你用Reflection来完成你的任务。