当前位置: 首页 > news >正文

C#基础教程

1. C# 基础语法和操作符

C# 中的运算符优先级
namespace OperatorsAppl
{class Program7{static void Main(string[] args){int a = 20;  // 定义变量aint b = 10;  // 定义变量bint c = 15;  // 定义变量cint d = 5;  // 定义变量dint e;      // 定义变量e// 演示运算符优先级,计算 (a + b) * c / de = (a + b) * c / d;Console.WriteLine("(a + b) * c / d 的值是 {0}", e);  // 输出结果// 更多运算符优先级示例...}}
}

2. 数据类型和控制结构

C# 中的变量定义和初始化
// C# 中的变量定义和初始化
int i, j, k;   // 定义整型变量i, j, k
char c, ch;   // 定义字符型变量c, ch
float f, salary;  // 定义浮点型变量f, salary
double d;   // 定义双精度浮点型变量dint d = 3, f = 5;    /* 初始化d和f */
byte z = 22;         /* 初始化z */
double pi = 3.14159; /* 声明pi的近似值 */
char x = 'x';        /* 变量x的值为'x' */
C# 中的控制结构 - 条件语句
// C# 中的条件语句
int a = 10, b = 5;
string result = a > b ? "a大于b" : "a不大于b";  // 使用三元运算符进行条件判断
Console.WriteLine(result);  // 输出结果
C# 中的控制结构 - 循环
// C# 中的循环
for (int i = 0; i < 5; i++)  // for循环,从0到4
{Console.WriteLine(i);  // 输出循环变量i的值
}

3. 字符串和数组操作

C# 字符串操作
// C# 字符串操作
string str = "Hello, World!";  // 定义字符串str
Console.WriteLine(str);  // 输出字符串
C# 数组操作
// C# 数组操作
int[] array = new int[5] { 1, 2, 3, 4, 5 };  // 定义并初始化数组
foreach (var item in array)  // 使用foreach循环遍历数组
{Console.WriteLine(item);  // 输出数组元素
}

4. 函数和方法

C# 方法的定义和调用
namespace CalculatorApplication
{class NumberManipulator{public int FindMax(int num1, int num2)  // 定义FindMax方法,返回两个整数中的最大值{return num1 > num2 ? num1 : num2;  // 使用三元运算符返回最大值}static void Main(string[] args)  // 程序入口点{NumberManipulator n = new NumberManipulator();  // 创建NumberManipulator实例int max = n.FindMax(100, 200);  // 调用FindMax方法Console.WriteLine("最大值是: {0}", max);  // 输出结果}}
}

5. 类和对象

C# 类的定义和对象的创建
namespace BoxApplication
{class Box  // 定义Box类{public double length;  // 定义长度属性public double breadth;  // 定义宽度属性public double height;  // 定义高度属性}class BoxTester  // 定义BoxTester类{static void Main(string[] args)  // 程序入口点{Box Box1 = new Box();  // 创建Box实例Box1.length = 6.0;  // 设置长度Box1.breadth = 7.0;  // 设置宽度Box1.height = 5.0;  // 设置高度Console.WriteLine("Box1 的体积: {0}", Box1.length * Box1.breadth * Box1.height);  // 计算并输出体积}}
}

6. 继承和多态性

C# 继承
namespace InheritanceApplication  // 定义一个名为InheritanceApplication的命名空间
{// 定义一个名为Shape的基类,表示一个形状class Shape{protected int width, height;  // 定义两个受保护的成员变量,分别表示形状的宽度和高度// 定义一个公共方法setWidth,用于设置宽度public void setWidth(int w) { width = w; }// 定义一个公共方法setHeight,用于设置高度public void setHeight(int h) { height = h; }}// 定义一个名为Rectangle的类,它继承自Shape类,表示一个矩形class Rectangle : Shape{// 定义一个公共方法getArea,用于计算矩形的面积public int getArea() { return width * height; }}// 定义一个名为RectangleTester的类,包含程序的入口点Main方法class RectangleTester{static void Main(string[] args)  // 程序的入口点,Main方法{// 创建一个Rectangle对象Rectangle Rect = new Rectangle();// 直接设置Rectangle对象的width和height属性Rect.width = 5;  // 设置宽度为5Rect.height = 7;  // 设置高度为7// 计算并输出矩形的面积Console.WriteLine("总面积: {0}", Rect.getArea());  // 输出矩形的面积}}
}
C# 多态性
namespace PolymorphismApplication  // 定义一个名为PolymorphismApplication的命名空间
{// 定义一个名为Box的类,用于表示一个长方体盒子class Box{public double length, breadth, height;  // 定义三个公共变量,分别表示盒子的长度、宽度和高度// 定义一个构造函数,用于初始化Box对象的三个维度public Box(double l, double b, double h){length = l; breadth = b; height = h;}// 定义一个方法getVolume,用于计算并返回盒子的体积public double getVolume() { return length * breadth * height; }}// 定义一个名为Tester的类,包含程序的入口点Main方法class Tester{static void Main(string[] args)  // 程序的入口点,Main方法{// 创建两个Box对象,分别表示两个不同尺寸的长方体盒子Box Box1 = new Box(6.0, 7.0, 5.0);Box Box2 = new Box(12.0, 13.0, 10.0);// 计算并输出这两个盒子的体积Console.WriteLine("Box1 的体积: {0}", Box1.getVolume());  // 输出Box1的体积Console.WriteLine("Box2 的体积: {0}", Box2.getVolume());  // 输出Box2的体积}}
}

7. 接口和抽象类

C# 接口
// 定义一个名为IMyInterface的接口
interface IMyInterface
{// 在接口中声明一个必须由实现类实现的方法void MethodToImplement();
}// 定义一个名为InterfaceImplementer的类,它实现了IMyInterface接口
class InterfaceImplementer : IMyInterface
{// 实现接口中声明的方法public void MethodToImplement(){Console.WriteLine("MethodToImplement() called.");  // 输出一条消息到控制台}// 程序的入口点,Main方法static void Main(){// 创建InterfaceImplementer类的实例InterfaceImplementer iImp = new InterfaceImplementer();// 调用实现的方法iImp.MethodToImplement();  // 这将输出"MethodToImplement() called."到控制台// 注意:这里没有Console.ReadKey();调用,控制台窗口会在Main方法执行完毕后立即关闭}
}

8. 异常处理

C# 异常处理
namespace ErrorHandlingApplication  // 定义一个名为ErrorHandlingApplication的命名空间
{class DivNumbers  // 定义一个名为DivNumbers的类,用于处理除法运算{int result;  // 定义一个整型变量result,用于存储除法运算的结果DivNumbers() { result = 0; }  // 构造函数,初始化result为0public void division(int num1, int num2)  // 定义一个公共方法division,接受两个整数参数{try  // 尝试执行try块中的代码{result = num1 / num2;  // 执行除法运算,将结果存储在result变量中}catch (DivideByZeroException e)  // 如果在try块中抛出DivideByZeroException异常,则执行catch块{Console.WriteLine("Exception caught: {0}", e);  // 输出异常信息}finally  // 无论是否发生异常,都会执行finally块中的代码{Console.WriteLine("Result: {0}", result);  // 输出result变量的值}}static void Main(string[] args)  // 程序的入口点,Main方法{DivNumbers d = new DivNumbers();  // 创建DivNumbers类的实例d.division(25, 0);  // 调用division方法,传入25和0作为参数,这将触发除以零的异常Console.ReadKey();  // 等待用户按下任意键,防止控制台窗口立即关闭}}
}

9. 文件 I/O

C# 文件的输入与输出
using System;  // 引入System命名空间,提供基本的类和功能
using System.IO;  // 引入System.IO命名空间,提供文件和目录操作的功能namespace FileIOApplication  // 定义一个名为FileIOApplication的命名空间
{class Program  // 定义一个名为Program的类,包含程序的入口点{static void Main(string[] args)  // 程序的入口点,Main方法{// 使用FileStream类创建或打开一个名为"test.dat"的文件,文件模式为OpenOrCreate,访问权限为读写FileStream F = new FileStream("test.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite);// 循环20次,每次写入一个递增的字节到文件中for (int i = 1; i <= 20; i++){F.WriteByte((byte)i);  // 将整数i转换为字节并写入文件}// 将文件流的位置指针重置到文件的开头F.Position = 0;// 循环21次,每次从文件中读取一个字节并输出到控制台for (int i = 0; i <= 20; i++){Console.Write(F.ReadByte() + " ");  // 读取一个字节并将其转换为整数,然后输出到控制台}// 关闭文件流,释放资源F.Close();// Console.ReadKey方法用于等待用户按下任意键,防止控制台窗口立即关闭Console.ReadKey();}}
}

10. 正则表达式

C# 正则表达式
using System;  // 引入System命名空间,提供基本的类和功能
using System.Text.RegularExpressions;  // 引入System.Text.RegularExpressions命名空间,提供正则表达式的功能namespace RegExApplication  // 定义一个名为RegExApplication的命名空间
{class Program  // 定义一个名为Program的类,包含程序的入口点{static void Main(string[] args)  // 程序的入口点,Main方法{// 定义一个字符串变量input,存储原始的字符串string input = "Hello   World   ";// 定义一个字符串变量pattern,存储正则表达式的模式,这里"\\s+"表示匹配一个或多个空白字符string pattern = "\\s+";// 定义一个字符串变量replacement,存储替换后的字符串,这里用单个空格替换匹配到的多个空格string replacement = " ";// 创建一个Regex对象rgx,用于执行正则表达式操作Regex rgx = new Regex(pattern);// 使用Replace方法将input字符串中匹配pattern的部分替换为replacement字符串string result = rgx.Replace(input, replacement);// 使用Console.WriteLine方法输出原始字符串Console.WriteLine("Original String: {0}", input);// 使用Console.WriteLine方法输出替换后的字符串Console.WriteLine("Replacement String: {0}", result);// Console.ReadKey方法用于等待用户按下任意键,防止控制台窗口立即关闭Console.ReadKey();}}
}

11. 自定义异常

C# 创建用户自定义异常
using System;using System;namespace UserDefinedException
{public class TempIsZeroException : ApplicationException{// 构造函数,允许传递自定义错误消息public TempIsZeroException(string message) : base(message){}// 可以选择添加更多的构造函数,例如无参数的构造函数// 或者包含异常内部信息的构造函数public TempIsZeroException(){}// 包含错误消息和内部异常的构造函数public TempIsZeroException(string message, Exception inner) : base(message, inner){}}
}

相关文章:

C#基础教程

1. C# 基础语法和操作符 C# 中的运算符优先级 namespace OperatorsAppl {class Program7{static void Main(string[] args){int a 20; // 定义变量aint b 10; // 定义变量bint c 15; // 定义变量cint d 5; // 定义变量dint e; // 定义变量e// 演示运算符优先级&…...

Alibaba EasyExcel 导入导出全家桶

一、阿里巴巴EasyExcel的优势 首先说下EasyExcel相对 Apache poi的优势&#xff1a; EasyExcel也是阿里研发在poi基础上做了封装&#xff0c;改进产物。它替开发者做了注解列表解析&#xff0c;表格填充等一系列代码编写工作&#xff0c;并将此抽象成通用和可扩展的框架。相对p…...

Spring Cloud + MyBatis Plus + GraphQL 完整示例

Spring Cloud MyBatis Plus GraphQL 完整示例 1、创建Spring Boot子项目1.1 配置POM&#xff0c;添加必要的依赖1.2 配置MyBatis-Plus 2、集成GraphQL2.1 定义schema.graphqls2.2 添加GraphQL解析器2.3 配置schame文件配置 3、访问测试3.1 查询测试&#xff08;演示&#xff…...

uni-app简洁的移动端登录注册界面

非常简洁的登录、注册界面模板&#xff0c;使用uni-app编写&#xff0c;直接复制粘贴即可&#xff0c;无任何引用&#xff0c;全部公开。 废话不多说&#xff0c;代码如下&#xff1a; login.vue文件 <template><view class"content"><view class&quo…...

LongVU:用于长视频语言理解的空间时间自适应压缩

晚上闲暇时间看到一种用于长视频语言理解的空间时间自适应压缩机制的研究工作LongVU&#xff0c;主要内容包括&#xff1a; 背景与挑战&#xff1a;多模态大语言模型&#xff08;MLLMs&#xff09;在视频理解和分析方面取得了进展&#xff0c;但处理长视频仍受限于LLM的上下文长…...

Elasticsearch数据迁移(快照)

1. 数据条件 一台原始es服务器&#xff08;192.168.xx.xx&#xff09;&#xff0c;数据迁移后的目标服务器&#xff08;10.2.xx.xx&#xff09;。 2台服务器所处环境&#xff1a; centos7操作系统&#xff0c; elasticsearch-7.3.0。 2. 为原始es服务器数据创建快照 修改elas…...

Linux Cgroup学习笔记

文章目录 Cgroup(Control Group)引言简介Cgroup v1通用接口文件blkio子系统cpu子系统cpuacct子系统cpuset子系统devices子系统freezer子系统hugetlb子系统memory子系统net_cls子系统net_prio子系统perf_event子系统pids子系统misc子系统 Cgroup V2基础操作组织进程和线程popula…...

百问FB显示开发图像处理 - PNG图像处理

2.3 PNG图像处理 2.3.1 PNG文件格式和libpng编译 ​ 跟JPEG文件格式一样&#xff0c;PNG也是一种使用了算法压缩后的图像格式&#xff0c;与JPEG不同&#xff0c;PNG使用从LZ77派生的无损数据压缩算法。对于PNG文件格式&#xff0c;也有相应的开源工具libpng。 libpng库可从…...

【JavaWeb后端学习笔记】MySQL多表查询(内连接、外连接、子查询)

MySQL 多表查询 1、连接查询1.1 内连接1.2 外连接 2、子查询2.1 标量子查询2.2 列子查询2.3 行子查询2.4 表子查询 3、多表查询案例 多表查询有两大类&#xff1a;连接查询和子查询。 连接查询又分为隐式/显式内连接和左/右外连接。 子查询又分为标量子查询、列子查询、行子查询…...

RocketMQ 过滤消息 基于tag过滤和SQL过滤

RocketMQ 过滤消息分为两种&#xff0c;一种tag过滤&#xff0c;另外一种是复杂的sql过滤。 tag过滤 首先创建producer然后启动&#xff0c;在这里创建了字符串的数组tags。字符串数组里面放置了多个字符串&#xff0c;然后去发送15条消息。 15条消息随着i的增长&#xff0c;…...

element-ui 基本样式的一些更改【持续更新】

1、 去除el-tabs的底部灰色横线 ::v-deep .el-tabs__nav-wrap::after {height: 0px;}2、el-table设置表头颜色 <el-table:data"tableData":header-cell-style"{background:#F7F8FA,color:#4E5869}"><el-table-columnlabel"序号"type&qu…...

element-ui radio和checkbox禁用时不置灰还是原来不禁用时的样式

把要紧用的内容加上一个class"notEdit-page" z注意要在style里面写不能加上scoped /*//checkBox自定义禁用样式*//*//checkBox自定义禁用样式*/ .notEdit-page.el-checkbox__input.is-disabled.is-checked.el-checkbox__inner::after {border-color: #fff; } .notEdi…...

第一部分:基础知识 6. 函数 --[MySQL轻松入门教程]

MySQL 提供了丰富的内置函数&#xff0c;涵盖了字符串处理、数值计算、日期时间操作、聚合分析以及控制流等多个方面。这些函数可以帮助用户更高效地进行数据查询和处理。 1.字符串函数 MySQL 提供了丰富的字符串函数来帮助用户处理和操作字符串数据。下面是一些常用的 MySQL…...

【蓝桥杯每日一题】扫雷

扫雷 知识点 2024-12-3 蓝桥杯每日一题 扫雷 dfs &#xff08;bfs也是可行的&#xff09; 题目大意 在一个二维平面上放置这N个炸雷&#xff0c;每个炸雷的信息有$(x_i,y_i,r_i) $&#xff0c;前两个是坐标信息&#xff0c;第三个是爆炸半径。然后会输入M个排雷火箭&#xff0…...

【算法】棋盘覆盖问题源代码及精简版

目录 一、题目 二、样例 三、示例代码 四、精简代码 五、总结 对于棋盘覆盖问题的解答和优化。 一、题目 输入格式&#xff1a; 第一行&#xff0c;一个整数n&#xff08;棋盘n*n&#xff0c;n确保是2的幂次&#xff0c;n<64&#xff09; 第二行&#xff0c;两个整数…...

Django的介绍

Django是一个高级的Python Web框架&#xff0c;它鼓励快速开发和干净、实用的设计。Django遵循MVC设计模式&#xff0c;即模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controller&#xff09;&#xff0c;并提供了一个即时可用的…...

【Spring工具插件】lombok使用和EditStarter插件

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 引入 一&#xff1a;lombok介绍 1&#xff1a;引入依赖 2&#xff1a;使用 3&#xff1a;原理 4&…...

掌控时间,成就更好的自己

在个人成长的道路上&#xff0c;时间管理是至关重要的一环。有效的时间管理能够让我们更加高效地完成任务&#xff0c;实现自己的目标&#xff0c;不断提升自我。 时间对每个人都是公平的&#xff0c;一天只有 24 小时。然而&#xff0c;为什么有些人能够在有限的时间里做出卓…...

Ruby On Rails 笔记2——表的基本知识

Active Record Basics — Ruby on Rails Guides Active Record Migrations — Ruby on Rails Guides 原文链接自取 1.Active Record是什么&#xff1f; Active Record是MVC模式中M的一部分&#xff0c;是负责展示数据和业务逻辑的一层&#xff0c;可以帮助你创建和使用Ruby…...

【AI系统】EfficientNet 系列

EfficientNet 系列 本文主要介绍 EffiicientNet 系列&#xff0c;在之前的文章中&#xff0c;一般都是单独增加图像分辨率或增加网络深度或单独增加网络的宽度&#xff0c;来提高网络的准确率。而在 EfficientNet 系列论文中&#xff0c;会介绍使用网络搜索技术(NAS)去同时探索…...

【Python小白|Python内置函数学习2】Python有哪些内置函数?不需要导入任何模块就可以直接使用的!现在用Python写代码的人还多吗?

【Python小白|Python内置函数学习2】Python有哪些内置函数&#xff1f;不需要导入任何模块就可以直接使用的&#xff01;现在用Python写代码的人还多吗&#xff1f; 【Python小白|Python内置函数学习2】Python有哪些内置函数&#xff1f;不需要导入任何模块就可以直接使用的&a…...

蓝桥杯分治

P1226 【模板】快速幂 题目描述 给你三个整数 &#x1d44e;,&#x1d44f;,&#x1d45d;a,b,p&#xff0c;求 &#x1d44e;&#x1d44f; mod &#x1d45d;abmodp。 输入格式 输入只有一行三个整数&#xff0c;分别代表 &#x1d44e;,&#x1d44f;,&#x1d45d;a,b,p。…...

YOLOv8实战无人机视角目标检测

本文采用YOLOv8作为核心算法框架&#xff0c;结合PyQt5构建用户界面&#xff0c;使用Python3进行开发。YOLOv8以其高效的实时检测能力&#xff0c;在多个目标检测任务中展现出卓越性能。本研究针对无人机目标数据集进行训练和优化&#xff0c;该数据集包含丰富的无人机目标图像…...

三、【docker】docker和docker-compose的常用命令

文章目录 一、docker常用命令1、镜像管理2、容器管理3、容器监控和调试4、网络管理5、数据卷管理6、系统维护7、实用组合命令8、常用技巧二、docker-compose常用命令1、基本命令2、构建相关3、运行维护4、常用组合命令5、实用参数 一、docker常用命令 1、镜像管理 # 查看本地…...

Qt 2D绘图之五:图形视图框架的结构、坐标系统和框架间的事件处理与传播

参考文章链接: Qt 2D绘图之五:图形视图框架的结构和坐标系统 Qt 2D绘图之六:图形视图框架的事件处理与传播 图形视图框架的结构 在前面讲的基本绘图中,我们可以自己绘制各种图形,并且控制它们。但是,如果需要同时绘制很多个相同或不同的图形,并且要控制它们的移动、…...

基于SpringBoot+Vue的美妆购物网站

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

MySQL之创建和管理表

目录 1. MySQL中的数据类型​编辑​编辑 2. 创建和管理数据库 方式1&#xff1a;创建数据库 方式2&#xff1a;创建数据库并指定字符集 方式3&#xff1a;判断数据库是否已经存在&#xff0c;不存在则创建数据库&#xff08; 推荐 &#xff09; 总结 2.2 使用数据库 查看当…...

肌肉骨骼肿瘤治疗市场:潜力无限,未来可期

肌肉骨骼肿瘤治疗作为现代医学的重要分支&#xff0c;专注于应对骨骼和肌肉系统中的良性和恶性肿瘤。随着全球人口老龄化和生活方式的改变&#xff0c;肌肉骨骼疾病日益成为公共卫生的重要问题。与此同时&#xff0c;医疗技术的进步和患者对高质量医疗服务的需求不断推动该市场…...

QGIS 创建三维渲染动画

打开数据包中的denali工程文档&#xff0c;可以看到DEM图层和山体阴影图层。首先创建彩色的山体阴影效果&#xff1a; 接下来新建3D视图&#xff1a; 配置三维地图 配置后&#xff0c;可用鼠标中键、右侧的操作盘等进行三维旋转等操作。 接下来在三维地图中创建动画效果&#x…...

Vue生成类似于打卡页面

数据表格 <el-table :data"tableData" border height"calc(100vh - 240px)" :cell-style"cellFun"><el-table-column label"姓名" show-overflow-tooltip prop"name" align"center"/><el-table-co…...