欢迎光临
我们一直在努力

面向对象编程(OOP)

luodf阅读(7)

一、面向对象编程的思路

1、确定对象。

2、把对象关联起来。

二、类与类之间的关系

1、继承、泛化

2、组合

3、聚合

4、关联

5、依赖

但要用XX的时候,可以把对象从方法里面传递进去从而建立关联。

三、继承

表示 子类是什么,是一种强关系。

四、封装

类与类之间只通过暴露出来的方法进行交互,更加安全、稳定;只要暴露出来的接口不变就可以保持程序的稳定。

五、多态

运行时的多态

1、抽象方法

2、接口

3、虚方法

编译时的多态

1、方法的重载

2、运算符的重载

六、抽象类与接口

1、抽象类

约束作用:继承了它就得实现里面的抽象方法

代码复用的作用

语义上面:代表是什么

2、约束作用

实现了接口就要实现里面的方法

C#特性(attribute)

luodf阅读(9)

特性是什么?

特性的本质是一个类直接或者间接的继承于Attribute这个类,这个类中同样可以有字段、属性、构造方法、方法等。

如何使用特性?

当我们使用特性的时候,我们必须借助第三方通过反射的方式来使用特性。

C#反射(Reflection)

luodf阅读(18)

1、反射是什么?

2、反射有什么用?

3、反射的原理?

4、使用反射的步骤

5、反射的应用场景

1、反射是什么?

反射是.netframework提供的一组帮助类。常常用于反射的类assembly程序集类、Type类型、 Activator类等。

2、反射有什么用?

通过反射机制,我们可以在程序运行的过程中动态的创建对象,调用方法;读取程序的特性、属性等。反射是框架的设计的灵魂,在ORM框架、MVC框架、Aop中都有反射的存在运用。

3、反射的原理

反射这么强大,那么在.netframework中反射的原理是什么呢?

1).net程序的编译过程

在了解反射的原理之前,我们需要先了解.net程序的编译的过程。如下图

2)什么是元数据?

3)元数据与反射的关系

未完待续…

泛型2

luodf阅读(26)

泛型的作用

没有泛型多个数据类型需要去写多个方法去进行处理

泛型组成

泛型是由尖括号和占位符组成的

泛型的原理

泛型不是语法糖,而是框架升级支持的。第一次编译的时候将类型参数编译成中间语言中的占位符。第二次编译时,将占位符换成了实际上的类型。

泛型的分类

1、泛型方法

当一个方法需要处理多个数据类型的时候使用

2、泛型类

当一个类需要处理多个数据类型的时候使用

3、泛型接口

当一个接口需要处理多个数据类型的时候使用

4、泛型委托

当一个委托需要处理多个数据类型的时候使用

泛型的应用的场景

泛型的约束

1、基类约束

这样可以读取基类的一些字段

2、接口约束

这样可以读取接口的一些方法

3、引用约束 class

这样可以返回null值

4、值类型约束

5、无参数构造函数约束

这样就可以返回new的对象

return new T();

.net core 是什么?

luodf阅读(68)

 1、 .NET Core

       1、 .是一个跨平台的软件通用开发框架:.NET Core是一个可以用来构建现代的、可伸缩和高性能的跨平台软件应用程序的通用开发框架,可用于为Windows、Linux和MacOS构建软件应用程序。

       2、可构建几乎所有的软件程序: 与其他软件框架不同,.NET Core是最通用的框架,可用于构建各种软件,包括Web应用程序、移动应用程序、桌面应用程序、云服务、微服务、API、游戏和物联网应用程序。

       3、支持基于多种开源语言的开发:与其他框架不同,.NET Core并不局限于单一的编程语言,它支持C#、VB.NET、F#、XAML和TypeScript。这些编程语言都是开源的,由独立的社区管理。

       4、提供了最先进、最成熟和最广泛的类库、公共API、多语言支持和工具。借助于Visual Studio 2019和Visual Studio Code 这些最先进和最现代的开发工具,使得.NET Core成为开发人员最高效的平台之一。

      注: 微软最近宣布了.NET 5,这是.NET Core的未来。将来,.NET Core将改名为.NET,下一个版本的.NET Core将是.NET 5.0。

2、.Net Core 的最新版本

      .NET Core的当前版本为3.0.0,并且在2019年5月6日发布了第5个预览版。关键特征/产品:通过Visual Studio 2019支持ASP.NET Core 3.0、EF Core3.0、UWP、Windows窗体、WPF。

3、.Net Core 的特点

        .NET Core的主要特性包括免费开源、跨平台、现代、灵活、轻量级、快速、友好、可共享,是为未来的软件开发而设计构建的。

    1) .NET Core是现代的

     1)与一些较旧的框架不同,.NET Core旨在解决当今的现代需求,包括移动友好、构建一次在任何地方运行、可伸缩和高性能。

     2).NET Core旨在构建针对各种设备的应用程序,包括物联网和游戏机。

     3).NET Core在C# 8的帮助下支持现代语言结构,如面向对象和模块化编程、泛型、集合、lambdas、语言集成查询(LINQ)和异步编程,这使开发人员更加高效。

   2) .NET Core是快速的

.NET Core 3.0 是快速的。与.NET Framework和.NET Core 2.2及以前的版本相比,.NET Core 3.0的速度很快。.NET Core比其他服务器端框架(如Java Servlet和Node.js)快得多。

What Is .NET Core

根据TechEmpowers发布的一份报告,.NET Core比任何其他框架都要快得多。 TechEmpower基准测试通过对多个Web应用程序框架做如下比较:数据库的单表查询,多表查询,文件访问,数据更新,明文和JSON序列化等任务进行比较。

3) .NET Core是轻量级的

.NET Core是轻量级的。.NET Core可以包含在您的应用程序中,也可以安装在并行用户、机器范围内或服务器上。.NET Core可以部署在Docker容器中。

4) .NET Core是友好的

.NET Core通过.NET Standard与.NET Framework,Xamarin和Mono兼容。 .NET Core还支持使用各种流行的Web框架和库,如React,Angular和JavaScript。 TypeScript是.NET Core和Visual Studio生态系统的关键组件之一。

我们可以使用.NET Core构建哪些类型的应用程序?

.NET Core是一个通用的软件开发框架。它允许开发人员构建各种软件,包括Web,桌面,移动,云,游戏,物联网等。

What Is .NET Core

.NET Core更适合跨平台需求。.NET Core应用程序支持在Windows,Linux和macOS上运行。Linux和macOS上也都支持Microsoft流行的开源代码编辑器Visual Studio Code。VS Code支持代码编辑器的现代需求,包括智能提醒和调试。大多数第三方编辑器(如Sublime,Emacs和VI)都支持.NET Core。

1) Web应用

ASP.NET Core是.NET Core生态系统的核心组件。ASP.NET Core是一个用于构建网页的框架。ASP.NET Core基于MVC架构,并提供用于构建Web的通用库。开始使用ASP.NET Core

Razor是一个使用C#和TypeScript构建动态网页的新框架。Razor是一种改变游戏规则的技术,它允许C#开发人员用C#构建Web应用程序。

2) 移动开发

移动开发是.NET Core的关键产品。Xamarin是一套使用C#构建跨平台移动应用程序的工具和库。Xamarin允许开发人员在共享的.NET代码库上为IOS、Android、Windows和MacOS构建本地应用程序。

3) 桌面应用程序

.NET Core提供各种框架和工具来构建桌面应用程序。Windows窗体、WPF、UWP和Xamarin是构建桌面应用程序的四个主要框架。.NET Core还支持这些框架之间的互操作性。

Windows窗体是一种构建Windows桌面应用程序的技术。Windows窗体是.NET Framework的首批组件之一。

WPF(Windows Presentation Foundation)是一种较新的构建Windows桌面应用程序的技术。WPF是作为.NET Framework版本的一部分发布的

了解有关wpf的更多信息这里.

UWP是一种较新的技术,是在Windows 8之后发布的。如今,UWP已经成熟。UWP使用XAML作为表示层(UI)和C#作为后端编程。但是,貌似微软已经宣布了他的死亡。

4) 微服务和容器

微服务是一种新的设计模式,它允许开发人员构建软件服务的小模块,这些模块可以使用定义良好的契约相互通信。微服务使开发、测试和部署应用程序的独立部分更加容易。一旦部署完毕,每个微服务都可以根据需要独立地进行缩放。.NET Core支持微服务体系结构,它允许跨平台服务与.NET Core一起工作,包括使用.NET Framework、Java、Ruby或其他开发的服务。

容器是今天的越野车。.NET Core的模块化、轻量级和灵活性使得将.NET Core应用程序部署到容器中变得更加容易。容器把一个应用程序的所有的配置文件和依赖关系,包含在一个单独的、小型的和独立的软件部署单元中。容器可以部署在任何平台、云、Linux和Windows上。

.NET Core与Docker和Azure Kubernetes服务都很好地协作。

5) 云应用程序

云应用程序现在越来越受欢迎。Azure支持各种云应用程序。

.NET Core和C#应用程序可以通过Visual Studio 2019部署在Azure上。

6) 物联网

物联网应用正在增长。.NET Core支持通过UWP框架为运行Windows 10 IoT Core的物联网设备进行物联网开发。UWP可用于构建在由Raspberry Pi,MinnowBoard MAX,DragonBoard 410c等提供支持的物联网上运行的应用程序。

7) 机器学习

机器学习是软件开发人员日益增长的领域。

参考微软官方文档

8) 游戏

Unity是最受欢迎的游戏开发框架之一。C#和UWP用于构建移动,桌面,控制台,电视,VR,AR和Web游戏。

.NET Core 3.0中的新增的功能有哪些?

最新版本的.NET Core 3.0刚刚发布。C#8和Windows桌面是这个版本的两个主要新增部分。

C#8是C#语言的最新版本。C#8是.NET Core的一部分。C#8增加了新功能,包括

Windows桌面是.NET Core 3.0的新增功能,允许开发人员使用Windows窗体,WPF和UWP构建Windows桌面应用程序。

以下是.NET Core 3.0中的其他功能和增强功能列表,

  • Windows桌面的MSIX部署
  • MSIX是一种新的Windows应用程序包格式。它可用于将.NET Core 3.0桌面应用程序部署到Windows 10。
  • 快速内置JSON支持
  • IEEE浮点改进
  • .NET平台依赖内在函数
  • 依赖于框架的可执行文件支持
  • 构建副本依赖项
  • 装配卸载
  • Windows Native Interop
  • Linux上的TLS 1.3和OpenSSL 1.1.1
  • 改进的密码学
  • 适用于Linux的SerialPort
  • ARM64 Linux支持
  • GPIO支持Raspberry Pi

C#中的加密解密

luodf阅读(74)

一、MD5加密算法

我想这是大家都常听过的算法,可能也用的比较多。那么什么是MD5算法呢?MD5全称是message-digest algorithm 5,简单的说就是单向的加密,即是说无法根据密文推导出明文。

MD5主要用途:

1、对一段信息生成信息摘要,该摘要对该信息具有唯一性,可以作为数字签名。

2、用于验证文件的有效性(是否有丢失或损坏的数据),

3、对用户密码的加密,

4、在哈希函数中计算散列值

二、RSA加密算法

在谈RSA加密算法之前,我们需要先了解下两个专业名词,对称加密和非对称加密。

对称加密即:含有一个称为密钥的东西,在消息发送前使用密钥对消息进行加密,在对方收到消息之后,使用相同的密钥进行解密

非对称加密即:加密和解密使用不同的密钥的一类加密算法。这类加密算法通常有两个密钥A和B,使用密钥A加密数据得到的密文,只有密钥B可以进行解密操作(即使密钥A也无法解密),相反,使用了密钥B加密数据得到的密文,只有密钥A可以解密。这两个密钥分别称为私钥和公钥,顾名思义,私钥就是你个人保留,不能公开的密钥,而公钥则是公开给加解密操作的另一方的。根据不同用途,对数据进行加密所使用的密钥也不相同(有时用公钥加密,私钥解密;有时相反用私钥加密,公钥解密)。非对称加密的代表算法是RSA算法。下面通过示例演示使用RSA加密、解密.


三、DES加密

DES加密:使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算.

测试

luodf阅读(60)

C#中lamba表达式

luodf阅读(78)

Lambda 表达式是一种可用于创建 委托 或 表达式目录树 类型的 匿名函数 。通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数。

C#委托和事件

luodf阅读(159)

委托是一种特殊的类,和普通类不同的是委托是对一类方法的抽象。

因此只能在类内部定义内部类(包括委托、结构和枚举)而不能在方法中定义

C#特性

luodf阅读(56)

特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。

特性(Attribute)用于添加元数据,如编译器指令和注释、描述、方法、类等其他信息。.Net 框架提供了两种类型的特性:预定义特性和自定义特性。

大前端WP主题 更专业 更方便

联系我们联系我们