1. C# 基础语法和操作符
C# 中的运算符优先级
namespace OperatorsAppl
{
class Program7
{
static void Main(string[] args)
{
int a = 20; // 定义变量a
int b = 10; // 定义变量b
int c = 15; // 定义变量c
int d = 5; // 定义变量d
int e; // 定义变量e
// 演示运算符优先级,计算 (a + b) * c / d
e = (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; // 定义双精度浮点型变量d
int 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; // 设置宽度为5
Rect.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为0
public 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)
{
}
}
}