C# 语言基础全面解析
.NET学习资料
.NET学习资料
.NET学习资料
一、引言
C# 是一种功能强大、面向对象且类型安全的编程语言,由微软开发,广泛应用于各种类型的软件开发,从桌面应用、Web 应用到游戏开发等领域。本文将全面介绍 C# 语言的基础知识,帮助你快速入门 C# 编程。
二、基本语法
2.1 程序结构
C# 程序通常由一个或多个类组成,每个类可以包含字段、属性、方法和事件等成员。程序的执行从 Main 方法开始,这是程序的入口点。以下是一个简单的 C# 程序结构示例:
using System;class Program
{static void Main(){Console.WriteLine("这是一个简单的 C# 程序");}
}
在上述代码中:
using System; 引入了 System 命名空间,该命名空间包含了许多常用的类型和功能,如 Console 类,用于控制台输入输出。
class Program 定义了一个名为 Program 的类,所有 C# 代码都需要放在类中。
static void Main() 是程序的入口方法,static 关键字表示该方法属于类本身,而不是类的实例。void 表示该方法没有返回值。
2.2 注释
注释是代码中用于解释说明的部分,不会被编译器执行。C# 支持三种类型的注释:
单行注释:以 // 开头,注释内容直到行末。例如:
// 这是一个单行注释
多行注释:以 /* 开始,以 */ 结束,可以跨越多行。例如:
/*
这是一个
多行注释
*/
文档注释:以 /// 开头,用于生成代码文档。例如:
/// <summary>
/// 这是一个用于计算两个数之和的方法
/// </summary>
/// <param name="a">第一个数</param>
/// <param name="b">第二个数</param>
/// <returns>两数之和</returns>
public static int Add(int a, int b)
{return a + b;
}
三、数据类型
3.1 基本数据类型
C# 提供了丰富的基本数据类型,可分为以下几类:
整数类型:包括 sbyte(8 位有符号整数)、byte(8 位无符号整数)、short(16 位有符号整数)、ushort(16 位无符号整数)、int(32 位有符号整数)、uint(32 位无符号整数)、long(64 位有符号整数)和 ulong(64 位无符号整数)。例如:
int number = 10;
long bigNumber = 1000000000000;
浮点类型:float(单精度浮点数)和 double(双精度浮点数),用于表示小数。例如:
float piApprox = 3.14f;
double morePrecisePi = 3.141592653589793;
字符类型:char 用于表示单个字符,使用单引号括起来。例如:
char letter = 'A';
布尔类型:bool 只有两个值 true 和 false,用于逻辑判断。例如:
bool isDone = true;
3.2 引用数据类型
引用数据类型存储对对象的引用,而不是对象本身。常见的引用数据类型包括:
类:是一种自定义的数据类型,封装了数据和操作数据的方法。例如:
class Person
{public string Name { get; set; }public int Age { get; set; }
}
数组:用于存储多个相同类型的元素。例如:
int[] numbers = { 1, 2, 3, 4, 5 };
string[] names = new string[3] { "Alice", "Bob", "Charlie" };
字符串:string 用于表示文本,是字符的序列。字符串使用双引号括起来。例如:
string greeting = "Hello, World!";
四、变量和常量
4.1 变量
变量是用于存储数据的标识符,在使用前需要声明其类型。例如:
int age;
age = 25;string message = "Hello";
C# 也支持类型推断,使用 var 关键字,编译器会根据初始化值推断变量的类型。例如:
var number = 10; // 编译器推断 number 为 int 类型
var name = "John"; // 编译器推断 name 为 string 类型
4.2 常量
常量是在程序执行过程中值不能改变的量。使用 const 关键字声明常量。例如:
const double pi = 3.14159;
const string companyName = "ABC Company";
五、运算符
5.1 算术运算符
包括 +(加)、-(减)、*(乘)、/(除)和 %(取模)。例如:
int result1 = 5 + 3;
int result2 = 10 - 7;
int result3 = 4 * 6;
double result4 = 15.0 / 4.0;
int remainder = 17 % 5;
5.2 赋值运算符
= 用于将值赋给变量。此外,还有复合赋值运算符,如 +=、-=、*=、/= 等。例如:
int num = 10;
num += 5; // 等价于 num = num + 5;
5.3 比较运算符
包括 ==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)和 <=(小于等于),用于比较两个值,返回 bool 类型结果。例如:
bool isEqual = 5 == 5;
bool isGreater = 10 > 8;
5.4 逻辑运算符
&&(逻辑与)、||(逻辑或)和 !(逻辑非),用于处理布尔值。例如:
bool condition1 = true;
bool condition2 = false;
bool result5 = condition1 && condition2;
bool result6 = condition1 || condition2;
bool result7 =!condition1;
六、控制结构
6.1 if - else 语句
用于根据条件执行不同的代码块。例如:
int score = 85;
if (score >= 90)
{Console.WriteLine("优秀");
}
else if (score >= 80)
{Console.WriteLine("良好");
}
else
{Console.WriteLine("其他");
}
6.2 switch - case 语句
用于根据不同的值执行不同的代码块,适用于多分支判断。例如:
int dayOfWeek = 3;
switch (dayOfWeek)
{case 1:Console.WriteLine("星期一");break;case 2:Console.WriteLine("星期二");break;case 3:Console.WriteLine("星期三");break;default:Console.WriteLine("其他");break;
}
6.3 for 循环
用于重复执行一段代码指定的次数。例如:
for (int i = 0; i < 5; i++)
{Console.WriteLine(i);
}
6.4 while 循环
只要指定的条件为 true,就会重复执行代码块。例如:
int count = 0;
while (count < 3)
{Console.WriteLine(count);count++;
}
6.5 do - while 循环
与 while 循环类似,但它会先执行一次代码块,然后再检查条件。例如:
int value = 0;
do
{Console.WriteLine(value);value++;
} while (value < 3);
七、方法
方法是包含一系列语句的代码块,用于执行特定的任务。方法可以接受参数并返回值。以下是一个简单的方法示例:
class MathUtils
{public static int Add(int a, int b){return a + b;}
}class Program
{static void Main(){int result = MathUtils.Add(3, 5);Console.WriteLine(result);}
}
在上述代码中:
public static int Add(int a, int b) 定义了一个名为 Add 的公共静态方法,接受两个 int 类型的参数 a 和 b,并返回一个 int 类型的值。
MathUtils.Add(3, 5) 在 Main 方法中调用了 Add 方法,并传递参数 3 和 5,返回的结果赋值给 result 变量。
八、总结
本文介绍了 C# 语言的基础内容,包括基本语法、数据类型、变量和常量、运算符、控制结构以及方法等。这些基础知识是进一步学习 C# 编程的基石,通过不断实践和深入学习,你将能够利用 C# 开发出各种功能强大的应用程序。
相关文章:
C# 语言基础全面解析
.NET学习资料 .NET学习资料 .NET学习资料 一、引言 C# 是一种功能强大、面向对象且类型安全的编程语言,由微软开发,广泛应用于各种类型的软件开发,从桌面应用、Web 应用到游戏开发等领域。本文将全面介绍 C# 语言的基础知识,帮…...
基于SpringBoot的青年公寓服务平台的设计与实现(源码+SQL脚本+LW+部署讲解等)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
Bash 基础与进阶实践指南
目录 Bash 简介与基础基本命令与文件操作权限管理与用户管理重定向与管道变量与环境变量通配符与正则表达式Shell 脚本结构与控制流常用内建命令与技巧文本处理常用命令作业控制与进程管理别名与函数实用技巧与注意事项更多 Bash 进阶话题参考资源 1. Bash 简介与基础 1.1 什…...
深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据
深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据 一、服务器如何响应前端请求 前端与后端的交互主要通过 HTTP 协议实现。以下是详细步骤: 1. 前端发起 HTTP 请求 GET 请求:用于从服务器获取数据。POST 请求:用…...
使用LLaMA-Factory对AI进行认知的微调
使用LLaMA-Factory对AI进行认知的微调 引言1. 安装LLaMA-Factory1.1. 克隆仓库1.2. 创建虚拟环境1.3. 安装LLaMA-Factory1.4. 验证 2. 准备数据2.1. 创建数据集2.2. 更新数据集信息 3. 启动LLaMA-Factory4. 进行微调4.1. 设置模型4.2. 预览数据集4.3. 设置学习率等参数4.4. 预览…...
Kafka分区策略实现
引言 Kafka 的分区策略决定了生产者发送的消息会被分配到哪个分区中,合理的分区策略有助于实现负载均衡、提高消息处理效率以及满足特定的业务需求。 轮询策略(默认) 轮询策略是 Kafka 默认的分区策略(当消息没有指定键时&…...
在无sudo权限Linux上安装 Ollama 并使用 DeepSeek-R1 模型
本教程将指导你如何在 Linux 系统上安装 Ollama(一个本地运行大型语言模型的工具),并加载 DeepSeek-R1 模型。DeepSeek-R1 是一个高性能的开源语言模型,适用于多种自然语言处理任务。 DeepSeek-R1 简介 DeepSeek-R1 是 DeepSeek …...
Vue.js `v-memo` 性能优化技巧
Vue.js v-memo 性能优化技巧 今天我们来聊聊 Vue 3.2 引入的一个性能优化指令:v-memo。如果你在处理大型列表或复杂组件时,遇到性能瓶颈,那么 v-memo 可能会成为你的得力助手。 什么是 v-memo? v-memo 是 Vue 3.2 新增的内置指…...
蓝桥杯思维训练营(一)
文章目录 题目总览题目详解翻之一起做很甜的梦 蓝桥杯的前几题用到的算法较少,大部分考察的都是思维能力,方法比较巧妙,所以我们要积累对应的题目,多训练 题目总览 翻之 一起做很甜的梦 题目详解 翻之 思维分析:一开…...
HBase-2.5.10 伪分布式环境搭建【Mac】
文章目录 前言一、搭建单节点Zookeeper1. 解压zookeeper2. 配置环境变量3. 修改配置文件4. 启动zk 二、搭建伪分布式Hbase1. 解压hbase2. 配置环境变量3. 修改配置4. 启动HBase 前言 搭建hbase伪分布式环境 提示:以下是本篇文章正文内容,下面案例仅供参…...
【小白学AI系列】NLP 核心知识点(五)Transformer介绍
Transformer Transformer 是一种基于自注意力机制(Self-Attention Mechanism)的深度学习模型,首次由 Vaswani 等人于 2017 年在论文《Attention is All You Need》中提出。与 RNN 和 LSTM 不同,Transformer 不需要依靠序列顺序进…...
纯后训练做出benchmark超过DeepseekV3的模型?
论文地址 https://arxiv.org/pdf/2411.15124 模型是AI2的,他们家也是玩开源的 先看benchmark,几乎是纯用llama3 405B后训练去硬刚出一个gpt4o等级的LLamA405 我们先看之前的机遇Lllama3.1 405B进行全量微调的模型 Hermes 3,看着还没缘模型…...
OpenAI深夜反击:o3-mini免费上线,能否撼动DeepSeek的地位?
还在为寻找合适的 AI 模型而烦恼吗?chatTools 平台为您精选 o1、GPT4o、Claude、Gemini 等顶尖 AI 模型,满足您不同的 AI 应用需求。立即体验强大的 AI 能力! 深夜反击,OpenAI祭出o3-mini 在DeepSeek异军突起,搅动AI行…...
【Linux-网络】初识计算机网络 Socket套接字 TCP/UDP协议(包含Socket编程实战)
🎬 个人主页:谁在夜里看海. 📖 个人专栏:《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长,行则将至 目录 📚一、初识计算机网络 📖 背景 📖 网络协议 🔖OSI七层…...
使用ollama在本地部署一个deepseek大模型
文章目录 为什么选择本地化部署需要用到什么作者使用的什么环境如何根据自己的电脑或服务器配置选择自己能部署的大模型 一、Ollama1、下载Ollama2、安装Ollama 二、DeepSeek R11、下载DeepSeek R12、安装DeepSeek R1 三、ChatBox AI1、下载ChatBox AI2、安装ChatBox AI3、连接…...
10 Flink CDC
10 Flink CDC 1. CDC是什么2. CDC 的种类3. 传统CDC与Flink CDC对比4. Flink-CDC 案例5. Flink SQL 方式的案例 1. CDC是什么 CDC 是 Change Data Capture(变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据或数…...
【含文档+PPT+源码】基于微信小程序连锁药店商城
项目介绍 本课程演示的是一款基于微信小程序连锁药店商城,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.该项目附带的…...
使用 EXISTS 解决 SQL 中 IN 查询数量过多的问题
在 SQL 查询中,当我们面对需要在 IN 子句中列举大量数据的场景时,查询的性能往往会受到显著影响。这时候,使用 EXISTS 可以成为一种优化的良方。 问题的来源 假设我们有两个表,orders 和 customers,我们需要查询所有…...
[免费]微信小程序智能商城系统(uniapp+Springboot后端+vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序智能商城系统(uniappSpringboot后端vue管理端),分享下哈。 项目视频演示 【免费】微信小程序智能商城系统(uniappSpringboot后端vue管理端) Java毕业设计_哔哩哔哩_bilibili 项目介绍…...
UE学习日志#19 C++笔记#5 基础复习5 引用1
C中的引用(reference)是另一个变量的别名。对引用的所有修改都会更改其引用的变量的值。可以将引用视为隐式指针,它省去了获取变量地址和解引用指针的麻烦。另外,可以将引用视为原始变量的另一个名称。可以创建独立的引用变量&…...
PHP代码审计学习02
目录 代码审计一般思路 Beescms代码审计(upload) Finecms基于前台MVC任意文件上传挖掘思路 CLTPHP基于thinkphp5框架的文件上传挖掘思路 今天来看PHP有框架MVC类,文件上传,断点调试挖掘。 同样还是有关键字搜索和功能点抓包两…...
2025年02月02日Github流行趋势
项目名称:oumi 项目地址url:https://github.com/oumi-ai/oumi 项目语言:Python 历史star数:1416 今日star数:205 项目维护者:xrdaukar, oelachqar, taenin, wizeng23, kaisopos 项目简介:构建最…...
vue入门到实战 三
目录 3.1 v-bind 3.1.1 v-bind指令用法 编辑3.1.2 使用v-bind绑定class 3.1.3 使用v-bind绑定style 3.2.1 v-if指令 3.2.1 v-if指令 3.2.2 v-show指令 3.3 列表渲染指令v-for 3.3.1 基本用法 3.3.2 数组更新 3.3.3 过滤与排序 3.4 事件处理 3.4.1 使用v-on指令…...
[创业之路-271]:站在管理的角度看计算机操作系统,OS是技术思想与管理思想的完美融合,是物理世界和数字化虚拟世界的桥梁
一、前言: Operating System,站在终端用户的角度,翻译成了"操作系统",但站在计算机系统本身角度,翻译成"运营系统"更合适,是指它是负责运营计算机所有的硬件(物理…...
实验六 项目二 简易信号发生器的设计与实现 (HEU)
声明:代码部分使用了AI工具 实验六 综合考核 Quartus 18.0 FPGA 5CSXFC6D6F31C6N 1. 实验项目 要求利用硬件描述语言Verilog(或VHDL)、图形描述方式、IP核,结合数字系统设计方法,在Quartus开发环境下ÿ…...
java SSM框架 商城系统源码(含数据库脚本)
商城购物功能,项目代码,mysql脚本,html等静态资源在压缩包里面 注册界面 登陆界面 商城首页 文件列表 shop/.classpath , 1768 shop/.project , 1440 shop/.settings/.jsdtscope , 639 shop/.settings/org.eclipse.core.resources.prefs , …...
Unet 改进:在encoder和decoder间加入TransformerBlock
目录 1. TransformerBlock 2. Unet 改进 3. 完整代码 Tips:融入模块后的网络经过测试,可以直接使用,设置好输入和输出的图片维度即可 1. TransformerBlock TransformerBlock是Transformer模型架构的基本组件,广泛应用于机器翻译、文本摘要和情感分析等自然语言处理任务…...
【黄啊码】DeepSeek提示词大道至简版
1.1 有效提问的五个黄金法 法则一:明确需求 错误示例: Γ帮我写点东西」 正确姿势: Γ我需要一封求职邮件,应聘新媒体运营岗位,强调B年公众号运营经验 法则二:提供背景 错误示例 : Γ分析这个…...
【Linux系统】信号:认识信号 与 信号的产生
信号快速认识 1、生活角度的信号 异步:你是老师正在上课,突然有个电话过来资料到了,你安排小明过去取资料,然后继续上课,则小明取资料这个过程就是异步的 同步:小明取快递,你停下等待小明回来再…...
一、html笔记
(一)前端概述 1、定义 前端是Web应用程序的前台部分,运行在PC端、移动端等浏览器上,展现给用户浏览的网页。通过HTML、CSS、JavaScript等技术实现,是用户能够直接看到和操作的界面部分。上网就是下载html文档,浏览器是一个解释器,运行从服务器下载的html文件,解析html、…...
