我认为自己是一名优秀的中级 .Net 开发人员,在过去 3 年多的时间里,我对 C# 中的所有概念和术语都有了不错的理解。但是,我有一个问题,如果它看起来像一个愚蠢而愚蠢的问题,我深表歉意。我想知道的是为什么框架类库中的某些方法在更广泛的数据类型更有意义时返回窄数据类型,我们必须稍后将其转换为我们感兴趣的数据类型。我想给出以下两个例子来支持我的问题:
Label Label1 = (Label)Grid.FindControl("Label1");
在这个例子中,为什么 FindControl 返回一个 Control 类型的实例,我们必须将它转换为 Label 类型。它可能返回了一个 Label 类型的实例,因为我们传递了一个在方法参数的标记中声明的有效 ID。protected override object SaveViewState()
在此示例中,返回 on 对象,我们必须将其强制转换为字符串类型。
如果我的问题令人困惑,我再次抱歉。我只想知道为什么这些场景在返回窄类型时会返回更宽的类型,并且它可以避免我们额外的转换为我们想要的类型的步骤。