私は自分自身を優れた中級レベルの .Net 開発者だと考えており、過去 3 年以上 C# に取り組んだ後、C# のすべての概念と用語を十分に理解しています。しかし、私が持っているこの 1 つの質問があります。それがばかげた、ばかげた質問のように見える場合は、お詫び申し上げます。私が知りたいのは、フレームワーク クラス ライブラリの一部のメソッドが、幅の広いデータ型の方が適切な場合に幅の狭いデータ型を返す理由です。後で、関心のあるデータ型にキャストする必要があります。私の質問をサポートするために、次の2つの例を示します。
Label Label1 = (Label)Grid.FindControl("Label1");
この例では、FindControl が Control 型のインスタンスを返すのはなぜですか。それを Label 型にキャストする必要があります。メソッド引数のマークアップで宣言された有効な ID を渡しているため、Label 型のインスタンスが返される可能性があります。protected override object SaveViewState()
この例では、キャストする必要がある on オブジェクトが返されますが、これは文字列型である可能性があります。
私の質問が紛らわしい場合は、もう一度申し訳ありません。私が知りたいのは、そのようなシナリオが狭い型を返す可能性があるのに、なぜ広い型を返すのかということだけです。これにより、必要な型にキャストする追加の手順を回避できる可能性があります。