5.方法不需要与委托前面精确匹配
UDP连接和tcp连接的异同:两者都可以实现远程通讯,而主要区别在于tcp需要保持连接,而Udp不需要,由此可以看出udp更高的效率和占用资源更少,但是tcp传输数据更可靠
.Net身份验证的方式有哪几种:默认值为 Windows。 在Web.config 文件中,通过 <authentication> 节可以配置 ASP.NET 使用的安全身份验证模式,以标识传入的用户。 <authentication mode="[Windows|Forms|Passport|None]"><forms>...</forms><passport/></authentication><authentication> 节的mode 为必选的属性。指定应用程序的默认身份验证模式。
此属性可以为下列值之一: Windows :将 Windows 验证指定为默认的身份验证模式。将它与以下任意形式的 Microsoft Internet 信息服务 (IIS) 身份验证结合起来使用:基本、摘要、集成 Windows 身份验证 (NTLM/Kerberos) 或证书。在这种情况下,您的应用程序将身份验证责任委托给基础 IIS。 Forms :将 ASP.NET 基于窗体的身份验证指定为默认身份验证模式。Passport :将 Microsoft Passport Network 身份验证指定为默认身份验证模式。 None :不指定任何身份验证。您的应用程序仅期待匿名用户,否则它将提供自己的身份验证。
在c#中object类:1、类Object是 .NET Framework 中所有类、结构、枚举和委托的最终基类。
2、C#通常不要求类显示声明从 Object 的继承,因为继承是隐式的。
3、因为 .NET Framework 中的所有类均从 Object 派生,所以 Object 类中定义的每个方法可用于系统中的所有对象。 派生类也可以重写这些方法中的某些。
高内聚,低耦合的理解:内聚:是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系;耦合:是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。
C#面向对象思想主要包括:封装,继承,多态:
封装:用抽象的数据类型将数据类型和基本的方法操作封装在一起,在数据保护在抽象类型内部 (封装就是把数据或者函数集合在一个个的类中,封装的对象被称为抽象对象,封装的意义是防止或保护代码被我们无意的破坏,提高代码的重用性,职责分配)
继承:子类拥有父类的所有数据和操作
多态:一个程序中同名的不同方法的共存情况(方法重载和重写)
C#面向切面编程(AOP):这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程
(https://www.cnblogs.com/landeanfen/p/4782370.html)
一般而言,我们管切入到指定类指定方法的代码片段称为切面,而切入到哪些类、哪些方法则叫切入点。有了AOP,我们就可以把几个类共有的代码,抽取到一个切片中,等到需要时再切入对象中去,从而改变其原有的行为。
这样看来,AOP其实只是OOP的补充而已。OOP从横向上区分出一个个的类来,而AOP则从纵向上向对象中加入特定的代码。有了AOP,OOP变得立体了。如果加上时间维度,AOP使OOP由原来的二维变为三维了,由平面变成立体了。从技术上来说,AOP基本上是通过代理机制实现的。
AOP在编程历史上可以说是里程碑式的,对OOP编程是一种十分有益的补充。
重载和重写的区别:重载:方法名相同参数个数和参数类型不同
重写:当子类继承父类,子类中的方法与父类中的方法名,参数类型和参数个数完全相同则称为子类重写了父类方法(需要一override字标示)(对基类成员的 重写)
概述反射和序列化: 反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性 (就如:实例化对应的类,然后通过实例字段获取对应的方法)序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。