Csharp/C#教程:非抽象C#类中的无体构造函数分享


非抽象C#类中的无体构造函数

我正在尝试理解MVC框架中提供的以下类; 看起来这个类应该是抽象的,但它不是,但是这个类编译。 尽管缺少“抽象”关键字,该类实际上是抽象的吗? 我在这里想念的是什么?

namespace Microsoft.AspNet.Identity.EntityFramework { public class IdentityUser : IUser { public IdentityUser(); public IdentityUser(string userName); public virtual ICollection Claims { get; } public virtual string Id { get; set; } public virtual ICollection Logins { get; } public virtual string PasswordHash { get; set; } public virtual ICollection Roles { get; } public virtual string SecurityStamp { get; set; } public virtual string UserName { get; set; } } } 

编辑:

获得的经验教训:如果没有为二进制文件提供源代码,在Visual Studio中使用“转到定义”将提供看起来像源代码的东西……这与在Eclipse中使用“Open Declaration”不同,它将向您展示一些看起来不像源的东西。

这是Microsoft的类,我认为您通过Visual Studio中的“转到定义”上下文菜单检索了代码。 此代码是通过反映类型自动生成的,仅用于显示声明而不是实现内容。 如果您使用.NET Refector或dotReflect工具,那么您将看到实现的主体。

你缺少的是你实际上并没有查看该类的源代码。 它是ASP.NET的一部分, 在此处记录 。 源代码保存在Redmond Washington,不在您的计算机范围内,也不是.NET Reference Source的一部分 。

你得到的是一个自动生成的文档,由Microsoft.AspNet.Identity.EntityFramework.dll程序集中的元数据生成。 其中只包含类声明,代码由C#编译器编译成MSIL。 你需要一个好的反编译器才能看到代码的相似之处,Reflector和ILSpy很受欢迎。

在Visual Studio中使用“转到定义”时要小心。 您只能在IDE找到它时看到真正的源代码。

上述就是C#学习教程:非抽象C#类中的无体构造函数分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/959048.html

(0)
上一篇 2021年11月23日
下一篇 2021年11月23日

精彩推荐