C#基础教程

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值