c# - 如何通过 C# 的超类引用访问子类变量
问题描述
我有一个用户类,它是我的父类。我有一个从User类继承的SiteAdmin类:
public abstract class User { }
public class SiteAdmin : User
{
public string ProfilePicUrl { get; set; }
}
场景是我想检查User实例是否是SiteAdmin类的类型,然后使用User对象访问SiteAdmin属性。假设ProfilePicUrl是SiteAdmin类的属性。如何使用User对象访问此属性?
if (comment.User is SiteAdmin)
{
var profilePicUrl = comment.User.ProfilePicUrl;
}
解决方案
试试这个:
if (comment.User is SiteAdmin siteAdmin)
{
var profilePicUrl = siteAdmin.ProfilePicUrl;
}
或者你可以这样做:
if (comment.User is SiteAdmin)
{
var profilePicUrl = (comment.User as SiteAdmin).ProfilePicUrl;
}
推荐阅读
- git - 无法将 git 分支更改为主分支
- python - keras 似乎没有使用我自定义设计的损失函数
- javascript - 如何重新排列我的数组值以保持与列的关系?
- javascript - 将日期字符串转换为实际的日期格式?
- r - 是否有更有效的方法来处理在 R 数据框中重复的事实?
- python - 我得到的结果与我在 python 中的代码不一致。需要为我的字母频率代码省略一些字符,但它们仍然出现
- node.js - 车把:TypeError: (depth0 || container.hooks.helperMissing).call 不是函数
- python - 如何在树视图中加粗排序的标题?
- javascript - 如何提交表单并同时执行 javascript
- c# - 是否可以将图像拖动到 Winform GeckoFX 浏览器?