私は理解しようとしている他の誰かによって書かれた次のクラスを持っています (この例には必要のないコードを省略しました):
public abstract class UserControl : System.Web.UI.UserControl
{
...
public virtual bool IsAadmin(TheUser theUser)
{
if (Page is Page)
return ((Page)Page).IsAadmin(theUser);
return false;
}
...
編集:(注:stackoverflowPageでは、ifステートメントの最初の部分が青色で強調表示されますが、ビジュアルスタジオではそうではありません)
ifステートメント intellisense は、最初の Page がタイプSystem.Web.UI.Page Control.Pageであり、2 番目Pageが fromであることを示していSomething.Products.Web.Pageます。コードをデバッグすると、このステートメントに入らないように見えるifので、このコードが何をしようとしているのだろうか? しかし、もっと重要なことPageは、ifステートメントの最初の部分がどこから来ているか (初期化されているか) です。私は使用していますが、ステートメントを次Resharperのように置き換えることをお勧めしますif
var page = Page as Page;
if (page != null)
この変更は、デバッグ時にページが null であることを示しています。