私は理解しようとしている他の誰かによって書かれた次のクラスを持っています (この例には必要のないコードを省略しました):
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 であることを示しています。