C# 综合运用介绍

server/2025/2/8 7:36:40/

.NET学习资料

.NET学习资料

.NET学习资料


C# 作为一种由微软开发的面向对象编程语言,在软件开发领域占据着重要地位。凭借其简洁、类型安全以及与.NET 框架的紧密结合等特性,C# 被广泛应用于多个领域。下面将详细介绍 C# 的综合运用。

一、C# 语言特性及基础运用

### (一)特性
简洁性
:C# 的语法结构简洁明了,吸收了 C 和 C++ 的优点,同时去除了一些复杂易错的特性,如指针运算等,使得开发者能够更高效地编写代码。例如,定义一个简单的变量,int num = 5;,这种简单直观的方式降低了编程门槛。

类型安全性:C# 严格执行类型检查,在编译时就能发现许多类型不匹配的错误,这大大提高了代码的可靠性和稳定性。比如在方法调用时,如果参数类型不匹配,编译器会立即报错,避免了运行时错误的发生。

面向对象:C# 完全支持面向对象编程,包括封装、继承和多态等特性。通过封装,将数据和操作数据的方法封装在一个类中,提高了代码的安全性和可维护性;继承允许一个类从另一个类中获取属性和方法,减少了代码的重复;多态则使得不同的对象可以对同一消息做出不同的响应,增强了代码的灵活性。例如,定义一个基类 “动物”,包含 “叫” 的方法,然后通过继承创建 “猫” 和 “狗” 等子类,每个子类可以重写 “叫” 的方法,实现不同的叫声。

(二)基础运用

控制台应用程序:C# 可以轻松创建控制台应用程序,用于执行简单的命令行任务。例如,编写一个简单的计算器程序,通过控制台接收用户输入的两个数字和运算符,然后计算并输出结果。

using System;class Program
{static void Main(){Console.Write("请输入第一个数字: ");double num1 = double.Parse(Console.ReadLine());Console.Write("请输入运算符(+、-、*、/): ");string op = Console.ReadLine();Console.Write("请输入第二个数字: ");double num2 = double.Parse(Console.ReadLine());double result = 0;switch (op){case "+":result = num1 + num2;break;case "-":result = num1 - num2;break;case "*":result = num1 * num2;break;case "/":if (num2!= 0){result = num1 / num2;}else{Console.WriteLine("除数不能为0");return;}break;default:Console.WriteLine("无效的运算符");return;}Console.WriteLine($"结果是: {result}");}
}

Windows 桌面应用程序:借助 Windows 窗体(WinForms)或 WPF(Windows Presentation Foundation)技术,C# 可以开发出功能丰富、界面友好的桌面应用程序。WinForms 提供了一系列可视化控件,方便快速搭建界面;WPF 则更注重图形渲染和用户交互体验,支持更高级的动画和数据绑定等功能。例如,开发一个简单的图像查看器应用程序,使用 WinForms 或 WPF 来创建界面,通过 C# 代码实现图像的加载、放大、缩小等操作。

二、C# 在 Web 开发中的运用

(一)ASP.NET

C# 与 ASP.NET 框架紧密结合,成为构建 Web 应用程序的强大工具。ASP.NET 提供了丰富的组件和功能,如页面生命周期管理、数据绑定、成员资格管理等。使用 C# 在 ASP.NET 中开发,可以实现高效、可维护的 Web 应用。

动态网页开发:通过 ASP.NET Web Forms 或 ASP.NET MVC 模式,开发者可以创建动态生成内容的网页。Web Forms 采用事件驱动模型,类似于桌面应用程序的开发方式,方便快速开发;MVC(Model-View-Controller)模式则将业务逻辑、数据展示和用户交互分离,提高了代码的可测试性和可维护性。例如,开发一个在线商城的商品展示页面,使用 ASP.NET MVC 模式,将商品数据从数据库中读取(Model),通过控制器(Controller)处理请求并将数据传递给视图(View),在视图中展示商品信息。

Web 服务开发:ASP.NET 支持开发 Web 服务,C# 作为开发语言,可以轻松实现基于 SOAP 或 RESTful 的 Web 服务。Web 服务允许不同的应用程序之间通过网络进行通信和数据交换。例如,一个企业的内部系统可以通过 Web 服务将部分功能暴露给合作伙伴,实现数据共享和业务协作。如前文提到的简单加法服务和问候服务的示例,就是基于 C# 在 ASP.NET 中开发的 Web 服务。

(二)ASP.NET Core

ASP.NET Core 是新一代的 Web 开发框架,相比传统的 ASP.NET,具有跨平台、高性能、轻量级等优势。C# 在 ASP.NET Core 开发中同样发挥着重要作用。

跨平台应用:ASP.NET Core 可以运行在 Windows、Linux 和 macOS 等多个操作系统上,这使得使用 C# 开发的 Web 应用具有更广泛的部署选择。例如,企业可以将基于 ASP.NET Core 和 C# 开发的 Web 应用部署到 Linux 服务器上,降低成本并提高系统的稳定性。

微服务架构:ASP.NET Core 非常适合构建微服务架构,C# 的面向对象特性和强大的类库支持,使得开发者能够方便地创建独立的微服务模块。每个微服务可以独立开发、部署和扩展,通过轻量级的通信协议(如 HTTP/JSON)进行交互。例如,一个大型电商系统可以拆分为多个微服务,如商品服务、订单服务、用户服务等,每个微服务使用 C# 在 ASP.NET Core 中开发,实现高内聚、低耦合的架构设计。

三、C# 在数据处理与数据库交互中的运用

(一)数据处理

C# 拥有丰富的数据处理类库,如 System.Collections 和 System.Linq 等。

集合操作:System.Collections 命名空间提供了各种集合类,如 List、Dictionary、Queue 等,方便对数据进行存储和操作。例如,使用 List 来存储一组学生信息,然后进行排序、筛选等操作。

using System;
using System.Collections.Generic;class Student
{public string Name { get; set; }public int Age { get; set; }
}class Program
{static void Main(){List<Student> students = new List<Student>{new Student { Name = "张三", Age = 20 },new Student { Name = "李四", Age = 22 },new Student { Name = "王五", Age = 19 }};// 按年龄排序students.Sort((s1, s2) => s1.Age.CompareTo(s2.Age));// 筛选出年龄大于20的学生List<Student> filteredStudents = students.FindAll(s => s.Age > 20);foreach (var student in filteredStudents){Console.WriteLine($"姓名: {student.Name}, 年龄: {student.Age}");}}
}

LINQ 查询:System.Linq 提供了强大的查询功能,允许以类似 SQL 的语法对各种数据源(如集合、数据库等)进行查询。例如,使用 LINQ 对数据库中的数据进行查询和统计。

(二)数据库交互

C# 可以通过多种方式与数据库进行交互,如 ADO.NET、Entity Framework 等。

ADO.NET:ADO.NET 是.NET 框架中用于数据访问的基础技术,它提供了与各种数据库(如 SQL Server、Oracle、MySQL 等)进行交互的类库。通过 ADO.NET,开发者可以执行 SQL 语句,实现数据的插入、更新、删除和查询等操作。例如,使用 ADO.NET 连接到 SQL Server 数据库,查询并显示员工信息。

Entity Framework:Entity Framework 是一个对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,而无需编写大量的 SQL 语句。通过定义实体类和映射关系,Entity Framework 可以自动生成 SQL 语句来实现数据的持久化。例如,在一个企业管理系统中,使用 Entity Framework 来管理员工、部门等数据,通过操作实体类来实现数据的增删改查,大大提高了开发效率。

四、C# 在移动开发中的运用(Xamarin)

Xamarin 是一个跨平台移动开发框架,允许使用 C# 来开发 iOS、Android 和 Windows Phone 应用程序。

(一)共享代码

通过 Xamarin,开发者可以编写一次 C# 代码,并在多个移动平台上共享。这大大减少了开发成本和维护工作量。例如,开发一个简单的待办事项应用程序,使用 Xamarin 编写核心的业务逻辑代码,然后通过不同的界面适配层,将应用部署到 iOS 和 Android 平台上。

(二)访问原生功能

Xamarin 提供了访问原生设备功能的接口,使得使用 C# 开发的移动应用可以充分利用设备的硬件资源,如相机、GPS、通讯录等。例如,在一个基于 Xamarin 和 C# 开发的旅游应用中,可以调用设备的相机功能拍摄照片,使用 GPS 定位获取用户位置,方便用户记录旅行中的美好瞬间和了解自己的位置信息。

C# 在多个领域都有着广泛而深入的应用,无论是基础的控制台应用、强大的 Web 开发,还是数据处理、数据库交互以及移动开发等方面,C# 都展现出了其强大的功能和灵活性。随着技术的不断发展,C# 也在持续演进,为开发者提供更多的便利和可能性。如果你对 C# 在某个特定领域的运用,比如更复杂的算法实现、与特定硬件的交互等方面感兴趣,欢迎随时告诉我,我可以进一步展开介绍。


http://www.ppmy.cn/server/165890.html

相关文章

华为支付-免密支付接入免密代扣说明

免密代扣包括支付并签约以及签约代扣场景。 开发者接入免密支付前需先申请开通签约代扣产品&#xff08;即申请配置免密代扣模板及协议模板ID&#xff09;。 华为支付以模板维度管理每一个代扣扣费服务&#xff0c;主要组成要素如下&#xff1a; 接入免密支付需注意&#x…

优选算法合集————双指针(专题二)

好久都没给大家带来算法专题啦&#xff0c;今天给大家带来滑动窗口专题的训练 题目一&#xff1a;长度最小的子数组 题目描述&#xff1a; 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, …

Axure大屏可视化动态交互设计:解锁数据魅力,引领决策新风尚

可视化组件/模板预览&#xff1a;Axure 一、大屏可视化技术概览 在数据驱动决策的时代&#xff0c;大屏可视化技术凭借直观、动态的展示方式&#xff0c;已成为众多行业提升管理效率和优化决策过程的关键工具。它能够将复杂的数据转化为易于理解的图形和动画&#xff0c;帮助…

windows 10/11 开启wsl2运行linux 使用cuda方法

目录 前提条件 1、主板BIOS开启虚拟化支持 2、windows10、11系统更新到最新版本 3、nvidia 显卡驱动更新到最新&#xff08;一般windows更新会自动更新显卡驱动&#xff09; 4、windows下载安装linux内核补丁 x86架构 arm架构 5、启用虚拟机功能&#xff1a;windows系统打…

计算机网络笔记再战——理解几个经典的协议6——TCP与UDP

目录 先说端口号 TCP 使用序号保证顺序性和应答来保证有效性 超时重传机制 TCP窗口机制 UDP 路由协议 协议分类&#xff1a;IGP和EGP 几个经典的路由算法 RIP OSPF 链路状态数据库&#xff08;LSDB&#xff09; LSA&#xff08;Link State Advertisement&#xff0…

如何用hooks实现redux?

使用 Hooks 实现 Redux 的功能可以通过 useReducer 和 useContext 来实现。下面是一个简单的示例,演示如何用 Hooks 创建一个基本的 Redux-like 状态管理。 1. 创建 Redux Store 首先,创建一个 reducer 函数来管理状态变化。 // reducer.js const initialState = {count: 0…

在ANACONDA中安装mxnet报错处理

错误 AttributeError: module numpy has no attribute bool. np.bool was a deprecated alias for the builtin bool. To avoid this error in existing code, use bool by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the num…

android skia渲染介绍

Android AOSP 的渲染系统主要使用 Skia 图形库。Skia 是一个开源的 2D 图形库&#xff0c;它被广泛应用于 Android 的图形渲染中&#xff0c;负责绘制 UI 元素、文本、图像以及其他 2D 图形内容。 以下是 Android AOSP 中 Skia 的作用和它在渲染系统中的位置&#xff1a; 1. 什…