首页 > 解决方案 > 如何通过 C# 的超类引用访问子类变量

问题描述

我有一个用户类,它是我的父类。我有一个从User类继承的SiteAdmin类:

public abstract class User { }
public class SiteAdmin : User 
{
   public string ProfilePicUrl { get; set; }
}

场景是我想检查User实例是否是SiteAdmin类的类型,然后使用User对象访问SiteAdmin属性。假设ProfilePicUrlSiteAdmin类的属性。如何使用User对象访问此属性?

if (comment.User is SiteAdmin)
{
   var profilePicUrl = comment.User.ProfilePicUrl;
}

标签: c#

解决方案


试试这个:

if (comment.User is SiteAdmin siteAdmin)
{
    var profilePicUrl = siteAdmin.ProfilePicUrl;
}

或者你可以这样做:

if (comment.User is SiteAdmin)
{
    var profilePicUrl = (comment.User as SiteAdmin).ProfilePicUrl;
}

推荐阅读