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){}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/482498.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MATLAB】基于RSSI的蓝牙定位与例程,设置4个基站、二维定位

目录 ​编辑 商品描述 主要功能 技术细节 适用场景 下载链接 商品描述 这款基于接收信号强度指示&#xff08;RSSI&#xff09;原理的蓝牙定位程序&#xff0c;专为需要高效、可靠定位解决方案的开发者和研究人员设计。它能够在二维平面内&#xff0c;通过4个锚点实现对未…

DreamCamera2相机预览变形的处理

最近遇到一个问题&#xff0c;相机更换了摄像头后&#xff0c;发现人像角度顺时针旋转了90度&#xff0c;待人像角度正常后&#xff0c;发现 预览时图像有挤压变形&#xff0c;最终解决。在此记录 一人像角度的修改 先放示意图 设备预览人像角度如图1所示&#xff0c;顺时针旋…

鸿蒙修饰符

文章目录 一、引言1.1 什么是修饰符1.2 修饰符在鸿蒙开发中的重要性1.3 修饰符的作用机制 二、UI装饰类修饰符2.1 Styles修饰符2.1.1 基本概念和使用场景2.1.2 使用示例2.1.3 最佳实践 2.2 Extend修饰符2.2.1 基本概念2.2.2 使用示例2.2.3 Extend vs Styles 对比2.2.4 使用建议…

phpmyadmin导出wordpress数据教程

网站搬家或网站修改&#xff0c;需要导出数据或备份数据&#xff0c;一般主机控制面板最常用phpmyadmin。下面这个是一个有详细图文操作步骤的phpmyadmin导出wordpress数据教程。 1、先登陆到你主机的管理面板&#xff0c;找到数据库&#xff0c;再找到phpmyadmin&#xff0c;…

阅读笔记——SVD本质+计算+应用

摘要&#xff1a;本文讨论了正交相似对角化的方法&#xff0c;几何含义&#xff1b;方阵&#xff0c;非方阵的奇异值分解的计算&#xff0c;矫正方法以及与正交相似对角化存在区别&#xff1b;最后讨论了奇异值分解的应用。 1.实对称矩阵A的变换是一种线性变换&#xff0c;对应…

Linux网络_网络协议_网络传输_网络字节序

一.协议 1.概念 协议&#xff08;Protocol&#xff09; 是一组规则和约定&#xff0c;用于定义计算机网络中不同设备之间如何进行通信和数据交换。协议规定了数据的格式、传输方式、传输顺序等详细规则&#xff0c;确保不同设备和系统能够有效地互联互通。 在网络通信中&#…

数据结构 (16)特殊矩阵的压缩存储

前言 特殊矩阵的压缩存储是数据结构中的一个重要概念&#xff0c;它旨在通过找出特殊矩阵中值相同的矩阵元素的分布规律&#xff0c;把那些呈现规律性分布的、值相同的多个矩阵元素压缩存储到一个存储空间中&#xff0c;从而节省存储空间。 一、特殊矩阵的定义 特殊矩阵是指具有…

ehr系统建设方案,人力资源功能模块主要分为哪些,hrm平台实际案例源码,springboot人力资源系统,vue,JAVA语言hr系统(源码)

eHR人力资源管理系统&#xff1a;功能强大的人力资源管理工具 随着企业规模的不断扩大和业务需求的多样化&#xff0c;传统的人力资源管理模式已无法满足现代企业的需求。eHR人力资源管理系统作为一种先进的管理工具&#xff0c;能够为企业提供高效、准确、实时的人力资源管理。…

搭建AD域服务器

搭建AD域服务器 使用深信服HCI搭建AD域服务器 1、新建虚拟机 2、填写参数 3、省略安装过程 4、进入服务器管理器 5、 6、 7、 8、 9、 10、 11、 12、 13、 14、 15、 16、 17、 18、 19、 20、 21、 22、 23、

MOH: MULTI-HEAD ATTENTION AS MIXTURE-OFHEAD ATTENTION

当前的问题 多头注意力使用多个头部可以提高模型的精度。然而&#xff0c;并不是所有的注意力头都具有同样的重要性。一些研究表明&#xff0c;许多注意力头可以被修剪而不影响准确性。 此外&#xff0c;在多头注意中&#xff0c;每个注意头并行操作&#xff0c;最终输出是所…

Spring boot之BeanDefinition介绍

在spring框架中IOC容器进行bean的创建和管理。Bean的创建是一个比较复杂的过程&#xff0c;它并不像我们创建对象一样只是直接new一下就行&#xff0c;虽然有些bean确实就是New一下。但在Spring中可以通过一些途径对bean进行增强扩展。在这个过程中&#xff0c;BeanDefinition作…

Ubuntu 服务器部署 Tomcat 并配置 SSL/TLS 证书

本文目录 准备登陆云服务器安装 Java下载 tomcat 包配置防火墙浏览器访问 Tomcat 默认页面以服务的形式运行 Tomcat创建 Tomcat 用户和组创建 systemd 服务文件启动 tomcat 服务 Tomcat webapps 文件目录部署一个静态网站tomcat 的配置文件 将域名解析到服务器Tomcat 配置 SSL/…

C++小问题

怎么分辨const修饰的是谁 是限定谁不能被改变的&#xff1f; 在C中&#xff0c;const关键字的用途和位置非常关键&#xff0c;它决定了谁不能被修改。const可以修饰变量、指针、引用等不同的对象&#xff0c;并且具体的作用取决于const的修饰位置。理解const的规则能够帮助我们…

PPT不能编辑,按钮都是灰色,怎么办?

PPT文件打开之后&#xff0c;发现无法编辑&#xff0c;再仔细查看发现工具栏中的功能按钮都是灰色的&#xff0c;无法使用&#xff0c;这是什么原因&#xff1f;该如何解决&#xff1f; 原因&#xff1a;无法编辑PPT文件&#xff0c;并且功能按钮都是灰色&#xff0c;这是因为…

相交链表和环形链表

&#xff08;一&#xff09;相交链表 相交链表 思路&#xff1a;先分别计算出A列表和B列表的长度&#xff0c;判断它们的尾节点是否相等&#xff0c;如果不相等就不相交&#xff0c;直接返回空。然后让两个列表中的长的列表先走它们的差距步&#xff0c;然后再一起走&#xff…

ARM架构下安装新版docker及docker-compose

一、常见CPU 架构&#xff1a; 二、环境信息 CPU架构操作系统配置HUAWEI Kunpeng 920 5220 aarch64openEuler 22.03 (LTS-SP3)64C128g15T 三、安装docker 3.1 二进制包下载 docker-ce 社区下载地址&#xff1a; wget https://mirrors.nju.edu.cn/docker-ce/linux/static/s…

LeetCode-315. Count of Smaller Numbers After Self

目录 题目描述 解题思路 【C】 【Java】 复杂度分析 LeetCode-315. Count of Smaller Numbers After Selfhttps://leetcode.com/problems/count-of-smaller-numbers-after-self/description/ 题目描述 Given an integer array nums, return an integer array counts whe…

【NLP 4、数学基础】

此去经年&#xff0c;应是良辰美景虚设 —— 24.11.28 一、线性代数 1.标量和向量 ① 标量 Scalar 一个标量就是一个单独的数 ② 向量 Vector 一个向量是一列数 可以把向量看作空间中的点&#xff0c;每个元素是不同坐标轴上的坐标 向量中有几个数&#xff0c;就叫作几维…

VideoBooth: Diffusion-based Video Generation with Image Prompts

VideoBooth: Diffusion-based Video Generation with Image Prompts 概括 文章提出了一个视频生成模型VideoBooth&#xff0c;输入一张图片和一个文本提示词&#xff0c;即可输出保持图片中物体且符合文本提示词要求的视频。 方法 粗-细两阶段设计&#xff1a;1&#xff09;…

Graphy 是一款终极、易于使用、功能齐全的 FPS 计数器、统计监视器和调试器,适用于您的 Unity 项目。

主要特点&#xff1a; Graph & Text: 图文&#xff1a; FPSMemory 记忆Audio 声音的Advanced device information 高级设备信息Debugging tools 调试工具 GitHub - Tayx94/graphy:Graphy 是适用于 Unity 项目的终极、易于使用、功能丰富的 FPS 计数器、统计监视器和调试…