C# 基本信息介绍
总目录
前言
对 C# 做一个基本信息介绍,让我们对 C# 有个基本的认识。
在进行本文的阅读之前,可以瞧瞧 编程基础知识简述 简单的入个门儿。
一、C#
1. C# 概述
C#是由微软公司发布的一种由C和C++衍生出来的面向对象的编程语言。
2. C# 详细介绍
- C#(读作“C Sharp”)
- C# 是面向对象的、面向组件的 高级编程语言。
- C#是由C和C++衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如,没有宏以及不允许多重继承)。
- C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为 .NET开发 的首选语言。
- C# 语言是适用于 .NET 平台(免费的跨平台开源开发环境)的最流行语言。 C# 程序可以在许多不同的设备上运行,从物联网 (IoT) 设备到云以及介于两者之间的任何设备。 可为手机、台式机、笔记本电脑和服务器编写应用。
- C# 是一种跨平台的通用语言,可以让开发人员在编写高性能代码时提高工作效率。 C# 是数百万开发人员中最受欢迎的 .NET 语言。 C# 在生态系统和所有 .NET 工作负载中具有广泛的支持。 基于面向对象的原则,它融合了其他范例中的许多功能,尤其是函数编程。 低级功能支持高效方案,无需编写不安全的代码。 大多数 .NET 运行时和库都是用 C# 编写的,C# 的进步通常会使所有 .NET 开发人员受益。
3. C# 可以做什么?
C#是.NET框架中最常用的编程语言之一,可以用于多种应用程序开发,包括但不限于以下领域:
- 桌面应用程序开发:使用
C#
和Windows Presentation Foundation(WPF)
或Windows Forms
,可以开发功能丰富的桌面应用程序,如图形用户界面(GUI)应用程序、办公套件、数据库管理工具等。 - Web应用程序开发:使用
C#
和ASP.NET
,可以构建强大的Web应用程序,包括企业级网站、电子商务平台、博客、社交网络和内容管理系统等。 - 移动应用程序开发:使用
C#
和Xamarin
框架,可以开发跨平台的移动应用程序,同时在i0S、Android和 Windows等多个平台上运行。 - 游戏开发:
C#
可以与Unity
游戏引擎结合使用,创建各种类型的游戏,包括2D和3D游戏,以及跨平台的移动游戏。 - 云应用程序开发:使用
C#
和.NETCore
,可以构建云原生应用程序,将应用程序部署到云平台(如Microsoft Azure)上,并利用云服务(如云存储、数据库、人工智能等)进行扩展和增强。 - 数据科学和机器学习:C#提供了丰富的库和框架(如
ML.NET
),可以用于数据处理、统计分析和机器学习任务,支持开发智能应用程序。 - 物联网(IoT)应用程序开发:使用C#和.NETCore,可以编写与物联网设备(如传感器、嵌入式系统)交互的应用程序,实现物联网解决方案。
4. C# 功能
-
C# 对于初学者而言很容易上手,但同时也为经验丰富的专业应用程序开发人员提供了高级功能。 你很快就能提高工作效率。 你可以根据应用程序的需要学习更专业的技术。
-
C# 应用受益于 .NET 运行时的自动内存管理。 C# 应用还可以使用 .NET SDK 提供的丰富运行时库。 有些组件独立于平台,例如文件系统库、数据集合与数学库。 还有一些组件特定于单个工作负载,例如 ASP.NET Core Web 库或 .NET MAUI UI 库。 NuGet 的丰富开源生态系统增强了作为运行时一部分的库。 这些库提供更多可用的组件。
-
C# 属于 C 语言家族。 如果你使用过
C
、C++
、JavaScript
或Java
,那么也会熟悉 C# 语法。 与 C 语言家族中的所有语言一样,分号 (;
) 定义语句的结束。 C# 标识符区分大小写。 C# 同样使用大括号({
和}
)、控制语句(例如if、else 和 switch
)以及循环结构(例如for 和 while
)。 C# 还具有适用于任何集合类型的 foreach 语句。 -
C# 是一种强类型语言。 声明的每个变量都有一个在编译时已知的类型。 编译器或编辑工具会告诉你是否错误地使用了该类型。 可以在运行程序之前修复这些错误。 以下基础数据类型内置于语言和运行时中:
值类型(例如 int、double、char)
、引用类型(例如 string)
、数组
和其他集合
。 编写程序时,你会创建自己的类型。 这些类型可以是值的struct
类型,也可以是定义面向对象的行为的class
类型。 可以将record
修饰符添加到struct
或class
类型,以便编译器合成用于执行相等性比较的代码。 还可以创建interface
定义,用于定义实现该接口的类型必须提供的协定或一组成员。 还可以定义泛型类型和方法。 泛型使用类型参数为使用的实际类型提供占位符。 -
编写代码时,可以将函数(也称为方法)定义为 struct 和 class 类型的成员。 这些方法定义类型的行为。 可以使用不同数量或类型的参数来重载方法。 方法可以选择性地返回一个值。 除了方法之外,C# 类型还可以带有属性,即由称作访问器的函数支持的数据元素。 C# 类型可以定义事件,从而允许类型向订阅者通知重要操作。 C# 支持面向对象的技术,例如 class 类型的继承和多形性。
-
C# 应用使用异常来报告和处理错误。 如果你使用过
C++
或Java
,则也会熟悉这种做法。 当无法执行预期的操作时,代码会引发异常。 其他代码(无论位于调用堆栈上面的多少个级别)可以选择性地使用 try - catch 块进行恢复。
二、.NET
既然介绍C# 就避不开要了解一下.NET
1. .NET 简介
.NET 是一个免费的跨平台开放源代码开发人员平台,用于生成多种类型的应用程序
。 .NET 可以运行使用多种语言编写
的程序,其中 C# 是最常用的语言
。 .NET 依赖于许多大规模应用在生产中使用的高性能运行时。
需要先知道:.NET 是一个平台,而C# 是编写 可以运行于.NET 平台的程序的一种语言。同理我们也可用F# 编写.NET程序
2. .NET支持的应用
3. .NET 语言
Microsoft 在 .NET 平台上提供 3 种语言 – C#、F# 和 Visual Basic
4. NET实现
三、开发环境准备
1. 什么叫做IDE
- 集成开发环境(简称:IDE;英文名:Integrated Development Environment )
- 是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。具备这一特性的软件或者软件套(组)都可以叫集成开发环境。
简单点理解:IDE 就是程序员写代码的工具。
2. 下载并安装VS2022
通常C# 开发者 使用 Visual Studio 2022 进行开发工作
- 下载:Visual Studio 2022 下载
- 安装:安装的时候注意选择好对应的工作负荷即可,其他基本都是下一步下一步即可。
四、学习资料
通过这里收集的资料,我们可以帮助快速高效的学习C#
- 官方 - C#文档
- 官方 - .NET 文档
- DotNetGuide - GitHub开源项目 、DotNetGuide - 加速地址
- 全面的C#/.NET自学入门指南
- C#/.NET/.NET Core面试宝典(基础版)
- 官方技术文档
结语
回到目录页: C# 知识汇总
希望以上内容可以帮助到大家,如文中有不对之处,还请批评指正。
相关文章:
C# 基本信息介绍
总目录 前言 对 C# 做一个基本信息介绍,让我们对 C# 有个基本的认识。 在进行本文的阅读之前,可以瞧瞧 编程基础知识简述 简单的入个门儿。 一、C# 1. C# 概述 C#是由微软公司发布的一种由C和C衍生出来的面向对象的编程语言。 2. C# 详细介绍 C#&am…...
告别机器人味:如何让ChatGPT写出有灵魂的内容
目录 ChatGPT的一些AI味道小问题 1.提供编辑指南 2.提供样本 3.思维链大纲 4.融入自己的想法 5.去除重复增加多样性 6.删除废话 ChatGPT的一些AI味道小问题 大多数宝子们再使用ChatGPT进行写作时,发现我们的老朋友ChatGPT在各类写作上还有点“机器人味”太重…...
ECharts柱状图-柱图38,附视频讲解与代码下载
引言: 在数据可视化的世界里,ECharts凭借其丰富的图表类型和强大的配置能力,成为了众多开发者的首选。今天,我将带大家一起实现一个柱状图图表,通过该图表我们可以直观地展示和分析数据。此外,我还将提供…...
SAP ALV选择列排序时弹出定义排序顺序窗口问题
需求场景 使用REUSE_ALV_GRID_DISPLAY_LVC生成ALV,发现一个问题:使用it_events的时候选择列排序时会弹出定义排序顺序窗口,如下图所示。(正常选择某一列再使用排序功能时会直接排序,不用再选择列) CLASS l…...
HTML零基础入门教学
目录 一. HTML语言 二. HTML结构 三. HTML文件基本结构 四. 准备开发环境 五. 快速生成代码框架 六. HTML常见标签 6.1 注释标签 6.2 标题标签:h1-h6 6.3 段落标签:p 6.4 换行标签:br 6.5 格式化标签 6.6 图片标签&a…...
AI-PR曲线
PR曲线 人工智能里面的一个小概念。 2.3 性能度量(查全率,查准率,F1,PR曲线与ROC曲线) 预测出来的是一个概率,不能根据概率来说它是正类还是负类,要有一个阈值。 查准率(Precision&…...
[创业之路-199]:《华为战略管理法-DSTE实战体系》- 3 - 价值转移理论与利润区理论
目录 一、价值转移理论 1.1. 什么是价值? 1.2. 什么价值创造 (1)、定义 (2)、影响价值创造的因素 (3)、价值创造的三个过程 (4)、价值创造的实践 (5&…...
问题解决: python 调用存储过程获取不到返回值
python 调用存储过程获取不到返回值 1. 检查存储过程是否有副作用(例如关闭结果集)2. 在 Python 代码中,确保在执行存储过程时按正确的顺序操作:3. 使用游标检查结果集 1. 检查存储过程是否有副作用(例如关闭结果集&am…...
AI前沿分析:Github Copilot 推出免费版本,AI + 编程更高效!
名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼 Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、GitHub Copilot:AI编程的“革命性”助力二、免费版本上线:AI编程的普及时代&…...
浅谈仓颉语言的优劣
仓颉语言,作为华为自研的新一代编程语言,以其高效、安全、现代化的特点,引起了广泛的关注。 仓颉语言的优势 高效并发 仓颉语言的一大亮点是其轻松并发的能力。它实现了轻量化用户态线程和并发对象库,使得高效并发变得轻松。仓颉…...
AI证件照制作 API 快速生成证件照
本文将介绍一种 AI证件照制作 API 对接说明,它是可以通过输入人像照片URL以及自己喜欢的模板来制作各种风格的证件照。 接下来介绍下 AI证件照制作 API 的对接说明。 申请流程 要使用 API,需要先到 AI证件照制作 API 对应页面申请对应的服务ÿ…...
Java.10--IO流
JavaSE(Java Standard Edition)中的IO(输入输出)库提供了用于读写数据的类和接口。 这些功能可以用来处理文件、网络连接、内存中的数据结构等。 一、IO流分类 Java中的IO(输入输出)库可以按照不同的标准…...
Firewalld 防火墙全面解析与配置指南
在当今网络环境中,网络安全至关重要,而防火墙作为网络安全的关键防线,在Linux系统中扮演着极其重要的角色。本文将深入探讨Firewalld防火墙,涵盖其基础概念,优势特点,配置方法等多面内容,为您提供全面的Firewalld防火墙知识体系 一,Linux防火墙基础 (一) 防火墙内核…...
Javascript-web API-day02
文章目录 01-事件监听02-点击关闭广告03-随机点名案例04-鼠标经过或离开事件05-可点击的轮播图06-小米搜索框07-键盘类型事件08-键盘事件-发布评论案例09-focus选择器10-评论回车发布11-事件对象12-trim方法13-环境对象14-回调函数15-tab栏切换 01-事件监听 <!DOCTYPE html…...
Python爬虫之代理的设置
【1】urllib中使用公开代理 import urllib.requesturl http://www.baidu.com/s?wdipheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 }# 请求对象的定制 request urllib.req…...
Qt:QMetaObject::connectSlotsByName实现信号槽自动关联
简介 在Qt中,QMetaObject::connectSlotsByName 是一个便利的方法,它可以根据对象的对象名(objectName)自动将信号和槽连接起来。但是,要使用这个方法,必须确保: 1 控件(如按钮&…...
芝法酱学习笔记(2.1)——sql性能优化1
一、前言 做程序员这行,相信大家都会接触到性能优化这个概念。并且多数程序员,为自己能参与到性能优化的工作而感到自豪。 在普通应用系统的业务开发中,程序的性能瓶颈往往在数据库查询的IO上,所以优化数据库查询则是重中之重的工…...
【Mysql】Java的JDBC编程
本节目标 数据库驱动 JDBC的概念及作用 掌握JDBC的工作原理 掌握JDBC中几个常用接口和类 掌握基于数据库的应用程序开发流程 一. 数据库编程的必备条件 编程语言,如Java,C、C、Python等 数据库,如Oracle,MySQL,S…...
PHPUnit使用指南:编写高效的单元测试
PHPUnit使用指南:编写高效的单元测试 单元测试是软件开发中不可或缺的一部分,它能够帮助开发者确保代码的正确性和稳定性。PHPUnit是PHP中最流行的单元测试框架之一,提供了一套强大的工具和功能来编写和运行测试。本文将详细介绍如何使用PHP…...
二、HTML5
一、HTML5简介 1、什么是HTML5 HTML5 是新一代的 HTML 标准,2014年10月由万维网联盟(W3C)完成标准制定。 官网地址: W3C 提供: https://www.w3.org/TR/html/index.html WHATW…...
授权模型MAC
MAC(Mandatory Access Control)是一种授权模型,用于实现对系统资源访问的强制控制。在MAC模型中,授权是基于预先定义的安全策略,且该策略由系统管理员来配置和管理。 在MAC模型中,每个用户和每个资源都被赋…...
GaussDB数据库迁移方案介绍
云数据库GaussDB提供了多种数据迁移方案,可满足从MySQL数据库、Oracle数据库、GaussDB数据库、PostgreSQL数据库、DB2 for LUW、RDS for SQL Server、Microsoft SQL Server数据库到云数据库GaussDB的迁移。 数据迁移工具有DRS、DAS和gs_loader。推荐使用DRS&#x…...
web3跨链桥协议-Nomad
项目介绍 Nomad是一个乐观跨链互操作协议。通过Nomad协议,Dapp能够在不同区块链间发送数据(包括rollups),Dapp通过Nomad的合约和链下的代理对跨链数据、消息进行验证、传输。其安全通过乐观验证机制和欺诈证明制约验证者实现&…...
白话java设计模式
创建模式 单例模式(Singleton Pattern): 就是一次创建多次使用,它的对象不会重复创建,可以全局来共享状态。 工厂模式(Factory Method Pattern): 可以通过接口来进行实例化创建&a…...
代码的注释
代码注释是程序开发中至关重要的一部分,良好的注释能够大大提升代码的可读性、可维护性和团队协作效率。注释帮助开发人员理解代码的逻辑、目的和背后的设计思想,尤其是在面对复杂的业务逻辑或算法时,注释可以帮助未来的开发人员快速理解并有…...
Java中的Consumer接口应该如何使用(通俗易懂图解)
应用场景: 第一次程序员A写好了个基础的遍历方法: public class Demo1 {public static void main(String[] args) {//假设main方法为程序员B写的,此时需要去调用A写好的一个遍历方法//1.如果此时B突然发现想将字符串以小写的形式打印出来,则…...
数据库设计的基础与进阶:1NF、2NF、3NF及BCNF解析
目录 什么是数据库范式? 1. 第一范式(1NF) 2. 第二范式(2NF) 3. 第三范式(3NF) 4. 博茨-科德范式(BCNF) 总结 在数据库设计中,范式是为了确保数据存储结…...
ARM Cortex-A7 MPCore 架构
1、Cortex-A7 MPCore 简介 Cortex-A7 MPcore 处理器支持 1~4 核,通常是和 Cortex-A15 组成 big.LITTLE 架构的, Cortex-A15 作为大核负责高性能运算,比如玩游戏啥的, Cortex-A7 负责普通应用,因为 CortexA7 省电。 Cortex-A7 本身性能也不弱,不要看它叫做 Cortex-A7 但是…...
【操作系统】数据集合集!
本文将为您介绍经典、热门的数据集,希望对您在选择适合的数据集时有所帮助。 1 HarmonyOS 更新时间:2024-07-20 访问地址: GitHub 描述: 是首个基于微内核的全场景分布式操作系统,是华为自主研发的操作系统,华为将率…...
原生js图片预览
下面的图片预览是从一个JSON文件中加载图片列表,并且支持点击缩略图预览大图,还可以使用鼠标滚轮进行图片缩放。接下来了给大家把html、css、js一个一个的讲解一下 首先是html <div class"container"></div><div id"imag…...
【系统】Mac crontab 无法退出编辑模式问题
【系统】Mac crontab 无法退出编辑模式问题 背景一、问题回答1.定位原因:2.确认编辑器类型3.确保编辑器进入正确3.1 确认是否有crontab调度任务3.2 进入编辑器并确保编辑器正常3.3 保存操作 4.确认crontab任务存在5.确保脚本的可执行性和正确性 二、后续 背景 之前…...
【进程篇】04.进程的状态与优先级
一、进程的状态 1.1 进程的状态 1.1.1 并行与并发 • 并行: 多个进程在多个CPU下分别,同时进行运行 • 并发: 多个进程在一个CPU下采用进程切换的方式,在一个时间片内,让多个进程都得以推进 1.1.2 时间片的概念 LInux/windows这些民用级别…...
linux下蓝牙调试工具hcitool的使用
hcitool 是一个用于蓝牙设备管理的命令行工具,主要用于查看和管理蓝牙设备。以下是一些常见的用法和示例: 1. 查看本地蓝牙适配器信息 使用 hcitool dev 命令可以查看本地蓝牙适配器的信息。 hcitool dev示例输出: Devices:hci0 00:11:22…...
【RAG实战】Prompting vs. RAG vs. Finetuning: 如何选择LLM应用选择最佳方案
在构建基于大型语言模型(LLM)的应用时,通常不可能立即使用模型而无需任何调整。为了保持高实用性,我们可以选择以下几种方法之一: Prompt Engineering(提示工程)Fine-tuning(微调&a…...
EasyExcel 动态设置表格的背景颜色和排列
项目中使用EasyExcel把数据以excel格式导出,其中设置某一行、某一列单元格的背景颜色、排列方式十分常用,记录下来方便以后查阅。 1. 导入maven依赖: <dependency><groupId>com.alibaba</groupId><artifactId>easy…...
python俄罗斯方块.py
俄罗斯方块.py import pygame import random# 初始化游戏 pygame.init()# 设置游戏窗口的大小 screen_width 800 screen_height 600 play_width 300 play_height 600 block_size 30top_left_x (screen_width - play_width) // 2 top_left_y screen_height - play_heigh…...
IP协议详解
目录 一. IP协议概述 1. 概念 2. 特点 (1) 无连接性 (2) 不可靠传输 (3) 数据包分片和重组 二. IP协议报文格式 1. 版本 (4位) 2. 首部长度 (4位) 3. 服务类型 (8位) 4. 总长度 (16位) 5. 标识, 标志位, 片偏移 6. 生存时间 (8位) 7. 协议 (8位) 8. 首部检验和 (1…...
青少年编程与数学 02-004 Go语言Web编程 02课题、依赖管理
青少年编程与数学 02-004 Go语言Web编程 02课题、依赖管理 课题摘要:一、项目结构各目录说明: 二、依赖项三、依赖管理任务四、依赖管理步骤1. 初始化Go Modules项目2. 添加依赖3. 指定依赖版本4. 更新依赖5. 清理未使用的依赖6. 离线工作7. 模块隔离8. 可重现构建 …...
代码生成器
源码 表结构 代码的目录结构 后端代码 前端代码 查询数据库的表 前端 后端 只查询当前数据库的表去除掉定时任务和生成器的表格去除掉已经导入的表格<select id="selectDbTableList" parameterType="GenTable" resultMap="GenTableResult"…...
MySQL 性能调优:打造高效数据库
SQL 语句层面的性能调优策略 合理选择字段属性 在创建 MySQL 表时,为了获取更好的性能,选择合适的字段属性至关重要。 首先,要依据实际情况合理设置字段的类型及宽度。例如,对于像手机号码这类固定长度为 11 位的字段ÿ…...
Elasticsearch 实战应用:提升数据洞察与交互体验
随着数据量的不断增长和数据处理需求的日益复杂,Elasticsearch 在实战应用中的价值愈发凸显。在本次教学中,我们继续深入探索 Elasticsearch 的更多高级实战应用,致力于培养学生在数据洞察和用户交互方面的卓越能力。 一、数据建模与优化策略…...
Ubuntu 配置静态 IP 地址
在 Ubuntu 系统中配置静态 IP 地址,适用于服务器或虚拟机需要固定 IP 的场景。以下是详细的步骤说明。 1. 确认网络接口信息 在配置之前,先确认系统的网络接口名称和当前的网络配置。 1.1 查看网络接口 运行以下命令获取网络接口的名称(如…...
2025美赛数学建模十大常用算法之层次分析法AHP详解
层次分析法(Analytic Hierarchy Process, AHP)详解 一、层次分析法简介 层次分析法(AHP)是一种系统化的多准则决策方法,由美国运筹学家萨蒂(Thomas L. Saaty)于20世纪70年代提出。AHP通过构建层…...
鸿蒙学习笔记:用户登录界面
文章目录 1. 提出任务2. 完成任务2.1 创建鸿蒙项目2.2 准备图片资源2.3 编写首页代码2.4 启动应用 3. 实战小结 1. 提出任务 本次任务聚焦于运用 ArkUI 打造用户登录界面。需呈现特定元素:一张图片增添视觉感,两个分别用于账号与密码的文本输入框&#…...
电脑上怎么运行手机APP(电脑上运行手机APP的4种方法)
玩家可能不愿意在小屏幕上使用 Android 应用程序。此外,某些游戏玩家可能更喜欢在更大的屏幕上寻找刺激的体验,例如 PC 提供的体验,这可以增强他们的乐趣。因此,他们可能对如何在 PC 上流畅地运行 Android 应用程序感到好奇。本指…...
Java原生实现代码沙箱的实现
代码沙箱实现 代码沙箱:只负责接收代码和输入,返回编译运行的结果,不负责判题(可作为独立项目/服务,提供给其他需要执行代码的项目使用) 以Java语言为主,实现代码沙箱。主要学习其思想、关键流…...
Docker基础命令实战
问题:Error response from daemon: Get "https://index.docker.io/v1/search?qmysql&n25": dial tcp 199.59.148.9:443: connect: connection refused 在pull nginx时出现的报错,可能原因是镜像源过期了,我们需要更换镜像源 …...
【QT实战の心情笔记】
文章目录 界面布局主要界面分为三部分:1. 笔记列表区域2. 笔记内容编辑区域3. 操作按钮区域 Qt Designer 界面设计步骤完整界面布局图各控件设置和属性Qt Designer 文件 (.ui) 数据库表结构SQL 表结构: 逻辑代码1. 项目结构2. Note 类 (Note.h 和 Note.c…...
关于Unity VFX 在Spawn状态的一些笔记
一. periodic burst 和 single burst 的区别 1. Single Burst 定义:Single Burst 是一次性发射粒子,只在粒子系统启动时触发一次。 它是一个瞬时的发射行为,适合单次效果。 特性: 只触发一次。发射时间通常是粒子系统启动时。不会重复发射,除非重新触发粒子系统。适用场景…...
AutoMQ 流表一体新特性 Table Topic 发布: 无缝集成 AWS S3 Table 和 Iceberg
超越共享存储:使用 Apache Iceberg 中的 AutoMQ Table Topic 实现流处理与分析的统一 自 2023 年底官宣以来,AutoMQ 成功地将 Apache Kafka 从“Shared Nothing architecture”转变为“Shared Storage architecture”,这为京东、知乎、小红书…...