所以我正在看一个带有一些示例代码的项目。
网站的母版页调用MembershipUser.GetUser(); - 将其强制转换为自定义类型。
在提供的CustomMembershipProvider.cs类中,原始程序员为GetUser(字符串用户名,bool userIsOnline)和GetUser(对象providerUserKey,bool userIsOnline)编写了覆盖函数。
但他们从来没有用零或默认的空参数为GetUser()写一个覆盖..... ???
所以你会假设,GetUser只带回了MembershipUser的属性,但它带回了用自定义覆盖写的数据 - 这怎么可能?
我唯一的解释是,MembershipUser.GetUser()默认功能,调用覆盖GetUser(用户名,userIsOnline)或GetUser(providerUserKey,userisOnline)。但这在任何地方都没有记录。
这是对的吗?因为在示例代码中没有位置可以找到此GetUser()覆盖,并且被覆盖的GetUser()没有默认参数。
答案 0 :(得分:1)
是的。
来自反射器
public static MembershipUser GetUser()
{
return GetUser(GetCurrentUserName(), true);
}