当前位置: 首页 > 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){}}
}

http://www.mrgr.cn/news/78842.html

相关文章:

  • 浅谈C#库之DevExpress
  • ubuntu防火墙入门(一)——设置服务、关闭端口
  • 机器学习:机器学习项目的完整周期
  • Git for Windows 华为云 国内镜像源加速
  • 第三方Cookie的消亡与Google服务器端标记的崛起
  • rabbitmq原理及命令
  • 理解字母形状,从而获得含义
  • 【Linux】常用命令二
  • 【实验13】使用预训练ResNet18进行CIFAR10分类
  • Docker基础使用
  • 【MySQL — 数据库基础】MySQL的安装与配置 & 数据库简单介绍
  • LearnOpenGL学习(光照 -- 颜色,基础光照,材质,光照贴图)
  • 数据结构之三:栈和队列
  • Web登录页面设计
  • 用go语言写一个小服务
  • 手机卡限速丨中国移动5G变3G,网速500kb
  • 单链表---移除链表元素
  • LearnOpenGL学习(光照 -- 颜色,基础光照,材质)
  • go使用mysql实现增删改查操作
  • 我们来学mysql -- 事务之概念(原理篇)
  • 深度学习 | pytorch + torchvision + python 版本对应及环境安装
  • spring boot3.3.5 logback-spring.xml 配置
  • create-vue创建vue3项目
  • 【2024】使用Docker搭建redis sentinel哨兵模式集群全流程(包含部署、测试、错误点指正以及直接部署)
  • dpwwn02靶场
  • uniapp手机端一些坑记录