我对 System.Web.Security 命名空间中的 Membership
和 MembershipUser
类有疑问。
这两个类都存在于不同的库中,如果不通过任何文档而仅通过类方法、属性等,人们如何知道使用细节?如果我遇到 MembershipUser
类,我会知道有一个 Email
属性,我可以获取和设置它,但我不知道有一个 Membership
类,它的方法返回用户详细信息作为 MembershipUser
返回类型,而不会以某种方式遇到它。
例如要获取用户电子邮件地址,我们可以创建一个 MembershipUser
对象并使用 Membership
类提供的 GetUser()
方法作为 GetUser()
的返回类型为 Membership
。像这样。
MembershipUser user = Membership.GetUser();
string Email = user.Email;
成员(member)用户类:
public class MembershipUser
{
...
public virtual string Email { get; set; }
...
}
成员(member)等级:
public static class Membership
{
...
public static MembershipUser GetUser();
...
}
最佳答案
我认为您可能正在 Visual Studio 中寻找“按返回类型查找方法”工具,它允许您说“.net 库中的哪些方法返回此类型”,或者在您的示例中具体来说“哪些方法返回一个MembershipUser
类型的对象”?
据我所知,VS 没有该功能,但 ReSharper 扩展有。如果您有 ReSharper,您可以右键单击一个类型,然后选择“查找高级用法”,然后选择“解决方案和库”选项以及“用法”和“成员用法”:
然后点击“查找”得到如下列表:
如您所见,该列表在结果中包含 GetUser
函数。
This answer还提到了 Reflector扩展作为此的替代选项。
不过正如其他人所说,阅读您计划使用的库的文档是无可替代的。库作者可以直接描述特定方法的工作原理(在代码注释中,然后在使用该库时在智能感知中可见),但尝试描述不同类在这些注释中如何交互通常是不切实际的。
在编写类时,通常并不知道各个部分交互的不同方式,事实上,编写良好的代码会故意设法使类保持良好的分离,以便以后可以以新的方式使用它们。因此,库作者描述库中各种元素的交互的唯一实际位置是在其文档中。
关于c# - 来自类结构的类使用细节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42541429/