C#项目开发实战自学指南

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:本书为C#学习者提供实战指导,包含理论知识与视频教程,帮助读者通过实例项目深入理解C#。内容涵盖环境搭建、基础编程概念、数据库操作、UI设计及高级编程技能。本书致力于让初学者及进阶者通过实践提升编程技能。

1. 环境搭建:Visual Studio IDE安装与配置

Visual Studio的安装流程

在开始学习C#编程之前,首先需要准备一个功能强大的集成开发环境(IDE),而Visual Studio是微软推出的专业IDE之一。安装过程简单明了,首先需要从Visual Studio官网下载安装程序。安装时,选择适合C#开发的Visual Studio Community版本,并确保.NET框架被选中。安装过程中,系统会自动处理所有依赖关系和必要的组件。

1. 访问 Visual Studio 官方网站下载安装器。
2. 运行安装器并遵循向导指示。
3. 在安装过程中选择 .NET 开发工作负载。

Visual Studio的配置要点

安装完成后,根据自己的需求进行一些必要的配置。在Visual Studio中打开选项窗口,对文本编辑器、调试、工具栏等进行个性化设置,以提高开发效率。此外,可以安装一些扩展插件,例如Resharper,它能够提供代码质量分析、重构工具等高级功能。

1. 打开Visual Studio,依次点击“工具”->“选项”进行设置。
2. 在“文本编辑器”中可以设置语法高亮、自动缩进等。
3. 在“扩展和更新”中搜索并安装Resharper插件。

安装.NET SDK和运行环境

C#作为.NET平台上的编程语言,需要.NET SDK(软件开发工具包)来编译和运行C#程序。请确保安装最新版本的.NET SDK,并配置环境变量,这样可以在命令行中直接使用dotnet命令。安装完成后,可以在Visual Studio中创建.NET项目,并开始编写和运行C#代码。

1. 下载并安装最新版的.NET SDK。
2. 配置系统环境变量,添加.NET SDK的安装路径。
3. 打开命令行工具,使用 `dotnet --version` 检查安装是否成功。

通过以上步骤,你将拥有一个配置完善的开发环境,为接下来的学习和开发打下坚实的基础。

2. 理论与实践相结合:视频教程辅助学习

在现代教育中,视频教程已经成为了学习的重要手段。通过视频教程,学习者不仅能够获取理论知识,还能够直观地看到操作的实施过程,这对于快速理解和掌握技能至关重要。本章节将深入探讨如何通过视频教程辅助学习C#编程,包括选择合适的教程、高效学习方法、以及如何将理论知识与实践操作相结合。

2.1 视频教程的选择和利用

在选择C#视频教程时,需要考虑多个因素,包括教程的质量、内容的深度和广度、以及是否适合自己的学习水平。

2.1.1 选择合适的C#视频教程

选择一个好的视频教程对于学习过程至关重要。一个好的视频教程应具备以下特点:

  • 课程内容全面 :覆盖从基础知识到高级主题的完整路径。
  • 讲授者专业 :讲师应有扎实的理论基础和丰富的实践经验。
  • 内容更新及时 :技术更新迅速,教程内容应反映最新技术动态。
  • 互动性好 :互动性强的教程能更好地激发学习兴趣和参与感。
  • 支持材料完整 :除了视频,应提供完整的学习资料和练习项目。

市面上有许多优秀的C#教程平台,如 Udemy、Pluralsight、Coursera 等,他们提供了丰富的C#课程资源,且定期更新,很值得推荐。

2.1.2 视频教程的学习方法和技巧

学习视频教程时,需要采用适当的方法和技巧,以达到事半功倍的效果。这里是一些建议:

  • 规划学习计划 :明确每周的学习目标和时间,持之以恒地学习。
  • 理论与实践并重 :跟随视频中的步骤动手实践,加强记忆。
  • 笔记与总结 :记录关键点和疑惑,课后进行总结。
  • 重复观看难点 :对于难以理解的部分,多次观看,直到理解。
  • 参与社区讨论 :加入相关社区,与他人讨论,解决疑惑。

2.2 理论学习与实践操作相结合

理论是实践的基石,而实践是检验真理的唯一标准。在学习过程中,需要将理论知识与实践操作相结合,达到深刻理解和灵活运用。

2.2.1 理论知识的理解和应用

理论知识的学习是编程的根基,它能帮助我们理解编程语言的设计哲学和内在逻辑。在学习C#时,需要重点理解和掌握以下几个方面:

  • 语言基础 :如变量、数据类型、运算符、控制结构等。
  • 面向对象基础 :类、对象、继承、封装和多态等概念。
  • 高级特性 :如LINQ查询、委托、事件、泛型等。

只有扎实掌握这些基础知识,才能在实际编程中游刃有余。

2.2.2 实践操作的步骤和技巧

实践操作是将理论知识转化为实际编程能力的桥梁。以下是实践操作的一些重要步骤和技巧:

  • 建立项目环境 :使用Visual Studio等集成开发环境来创建和管理项目。
  • 动手编写代码 :根据视频教程的指导,亲自编写、调试代码。
  • 理解代码逻辑 :尝试理解每行代码的作用以及它们是如何协同工作的。
  • 问题解决能力 :遇到错误时,学会如何定位问题、分析原因并解决它。
  • 持续重构 :不断优化代码结构,提高代码的可读性和可维护性。

通过实践操作,学习者可以更深刻地体会到理论知识的实用性和编程思维的重要性。

在学习过程中,切勿忽视理论与实践的有机结合,它是学习编程,尤其是C#的重要环节。只有将两者紧密结合,才能更有效地提升编程能力,为日后的开发工作打下坚实的基础。

3. 面向对象编程:类、对象、属性、方法介绍

3.1 面向对象编程基础

面向对象编程(OOP)是一种编程范式,它使用“对象”来设计软件程序。对象可以包含数据(通常被称为属性或字段)以及代码来处理数据(通常被称为方法或函数)。在C#这种强类型语言中,类是定义对象蓝图的构造。

3.1.1 类和对象的概念和区别

类是创建对象的模板或蓝图。它定义了对象的属性和方法,但不实际分配内存来存储值。而对象是类的实例,即根据类模板创建的实体。每一个对象都有自己的属性值和方法实现。

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public void SayHello()
    {
        Console.WriteLine("Hello, my name is " + Name);
    }
}

Person john = new Person();
john.Name = "John";
john.Age = 30;
john.SayHello();

在上述C#代码段中, Person 是一个类,它定义了 Name Age 属性,以及 SayHello 方法。 john Person 类的一个对象,拥有自己的 Name Age 值,并且可以调用 SayHello 方法。

3.1.2 属性和方法的定义和使用

在C#中,属性提供了一种方法来访问字段,并允许在访问和设置字段时添加逻辑。它们通常由一个获取(getter)和/或一个设置(setter)方法组成。方法是类中定义的代码块,可以执行操作、计算值或执行任务。

public class Point
{
    private int x, y;
    public int X
    {
        get { return x; }
        set { x = value; }
    }
    public int Y
    {
        get { return y; }
        set { y = value; }
    }

    public void Move(int newX, int newY)
    {
        X = newX;
        Y = newY;
    }
}

Point origin = new Point();
origin.X = 0;
origin.Y = 0;
origin.Move(5, 5);

在上面的例子中, Point 类拥有两个属性 X Y ,以及一个方法 Move X Y 的getter和setter允许在获取和设置 x y 字段值时执行逻辑。 Move 方法允许改变 Point 对象的位置。

3.2 面向对象编程高级应用

在掌握了面向对象编程基础之后,高级应用关注如何使用封装、继承和多态来构造更加复杂和灵活的系统。

3.2.1 封装、继承和多态的概念和实现

  • 封装 是将数据(属性)和操作数据的代码(方法)绑定在一起的过程,这样可以隐藏内部实现细节,仅向外界提供必要的接口。C#中实现封装主要依赖于访问修饰符如 public private
  • 继承 允许一个类继承另一个类的字段和方法。C#使用冒号( : )来表示继承关系。
  • 多态 允许使用父类类型的引用来指向子类的对象,这样同一个接口可以使用不同的实例而执行不同的代码。在C#中,多态通常是通过虚方法( virtual )和重写( override )来实现的。
public class Animal
{
    public virtual void Speak()
    {
        Console.WriteLine("The animal makes a sound");
    }
}

public class Dog : Animal
{
    public override void Speak()
    {
        Console.WriteLine("The dog barks");
    }
}

Animal myPet = new Dog();
myPet.Speak(); // Output: "The dog barks"

在这个例子中, Animal 类定义了一个 Speak 方法,而 Dog 类继承自 Animal 并重写了 Speak 方法。由于 Dog 类重写了 Speak 方法,我们创建的 Animal 类型的引用实际上调用了 Dog 类中定义的方法,展现了多态的特性。

3.2.2 面向对象编程的优势和应用场景

面向对象编程为软件开发提供了诸多优势:

  • 模块化 :面向对象设计的系统被划分为独立的对象,便于管理复杂性。
  • 代码重用 :通过继承机制可以重用代码,减少重复工作。
  • 易于维护 :面向对象的代码更容易理解,更易于维护和扩展。

面向对象编程适用的场景非常多,几乎在所有类型的应用程序开发中都可以看到它的影子。从大型的、面向服务的架构(SOA)到小型的、嵌入式系统,OOP的应用都十分广泛。

面向对象编程是实现复杂系统设计的强大工具,而理解它的核心概念和高级特性对于开发可维护和可扩展的代码至关重要。随着技术的发展,OOP依然是软件开发的核心组成部分。在后续章节中,我们将深入探讨OOP的高级主题,如设计模式,以及如何在实际项目中应用它们。

4. 数据库操作:SQL Server,CRUD操作,连接配置

数据库是现代应用程序的重要组成部分,几乎所有的应用程序都需要对数据进行存储、检索、更新和删除操作,这些操作统称为CRUD(Create, Read, Update, Delete)。在这一章节中,我们将深入了解如何使用SQL Server数据库进行这些基本操作,并且讨论如何配置和优化数据库连接。

4.1 数据库基础知识

4.1.1 数据库的类型和选择

数据库可以分为两大类:关系型数据库和非关系型数据库。关系型数据库如MySQL、Oracle、SQL Server等,它们以表格的形式存储数据,并通过行和列来组织数据。非关系型数据库,又称为NoSQL数据库,如MongoDB、Redis等,适用于存储非结构化或半结构化的数据。

在本章节中,我们主要探讨SQL Server数据库,这是微软公司开发的一个流行的关系型数据库管理系统。它被广泛用于中小型企业级应用中,并且与.NET平台有非常好的集成性。

4.1.2 SQL语言的基本语法和使用

结构化查询语言(SQL)是用于管理和操作关系型数据库的标准编程语言。以下是一些SQL基本命令:

  • SELECT :用于从数据库中检索数据。
  • INSERT INTO :用于向数据库表中插入新的数据。
  • UPDATE :用于更新数据库表中的数据。
  • DELETE :用于从数据库表中删除数据。
  • JOIN :用于将两个或多个表中的记录结合起来。

在使用SQL时,需要遵循一定的语法规则。例如:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

在执行查询时, SELECT 语句用于指定要检索的列, FROM 用于指定表名, WHERE 用于指定过滤条件。

4.2 数据库操作实践

4.2.1 CRUD操作的实现和应用

接下来,我们将通过具体的例子来演示如何在SQL Server中执行CRUD操作。

  • 创建(Create)示例: sql INSERT INTO Users (UserName, UserEmail) VALUES ('Alice', '***');

  • 读取(Read)示例: sql SELECT * FROM Users WHERE UserName = 'Alice';

  • 更新(Update)示例: sql UPDATE Users SET UserEmail = 'new_***' WHERE UserId = 1;

  • 删除(Delete)示例: sql DELETE FROM Users WHERE UserId = 1;

4.2.2 数据库连接的配置和优化

为了使应用程序能够与SQL Server数据库进行通信,我们需要正确配置数据库连接。以下是一个通过C#配置SQL Server连接字符串的例子:

string connectionString = 
    "Server=your_server_name;Database=your_database_name;" +
    "User Id=your_username;Password=your_password;";

其中 your_server_name , your_database_name , your_username , your_password 需要替换为实际的服务器名称、数据库名称、用户名和密码。

在应用程序中,可以使用 SqlConnection 类创建数据库连接:

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    // 执行数据库操作...
}

在配置连接时,我们应该考虑以下优化策略:

  • 使用连接池来减少打开和关闭数据库连接的开销。
  • 在不需要时及时关闭连接,避免资源泄露。
  • 使用参数化查询来防止SQL注入攻击。
  • 根据实际负载和资源情况,适当调整连接超时设置。

下面是使用mermaid图表展示数据库连接池的基本工作流程:

graph TD;
    A[开始] --> B{检查池中是否有可用连接};
    B -- 是 --> C[获取现有连接];
    B -- 否 --> D[创建新连接];
    C --> E[执行数据库操作];
    D --> E;
    E --> F[返回连接到池中];
    F --> G[结束];

通过本章节的介绍,我们学习了数据库的基本操作和连接配置。在此基础上,我们可以进一步探讨如何优化数据库性能,以及如何将这些知识应用到实际的软件开发项目中。

5. MVC设计模式:提升项目结构和可维护性

5.1 MVC设计模式理论

5.1.1 MVC设计模式的概念和优势

MVC(Model-View-Controller)设计模式是一种经典的软件架构模式,将应用程序分为三个主要组成部分:模型(Model)、视图(View)和控制器(Controller)。在C#开发中,MVC模式被广泛应用于Web应用程序和桌面应用程序,通过分离关注点来提高项目的结构清晰度和可维护性。

模型(Model) 代表数据和业务逻辑。它负责数据的存储和处理,与数据库进行交互,提供数据访问层的实现。

视图(View) 是用户界面的展示,负责展示数据(模型)给用户,它是用户与应用程序交互的界面。

控制器(Controller) 作为桥梁连接模型和视图,处理用户输入,将用户的操作请求传递给模型和视图,根据模型的状态更新视图。

MVC模式的主要优势在于:

  • 解耦合 :各个组件之间解耦合,易于独立开发、测试和维护。
  • 灵活性和可重用性 :组件的功能独立,使得代码更容易重用。
  • 并行开发 :不同的团队成员可以同时开发模型、视图和控制器。
  • 便于团队协作 :由于职责明确,有助于不同专业背景的开发人员分工合作。

5.1.2 MVC设计模式在C#中的实现和应用

在C#中,实现MVC模式可以通过创建对应的类来表示M、V、C三个部分。举一个简单的例子:

public class UserModel // Model
{
    public string Username { get; set; }
    public string Email { get; set; }
}

public class UserView // View
{
    public void Display(UserModel model)
    {
        Console.WriteLine($"User: {model.Username}, Email: {model.Email}");
    }
}

public class UserController // Controller
{
    private UserModel model;
    private UserView view;

    public UserController(UserModel model, UserView view)
    {
        this.model = model;
        this.view = view;
    }

    public void SetUser(string username, string email)
    {
        model.Username = username;
        model.Email = email;
        view.Display(model);
    }
}

在实际的Web应用程序中,*** MVC框架提供了一套完整的MVC架构实现,其中:

  • 控制器由Controller类派生。
  • 视图通常是Razor视图模板。
  • 模型通常是POCO类,与数据库进行交互。

5.2 MVC设计模式实践

5.2.1 MVC设计模式的项目结构和设计

在项目结构设计中,MVC设计模式下通常会有以下目录结构:

MVCProject/
|-- Models/
|   |-- UserModel.cs
|-- Views/
|   |-- User/
|       |-- Index.cshtml
|-- Controllers/
    |-- UserController.cs

在这个结构中, Models 目录包含所有数据模型类, Views 目录包含所有的视图文件,通常按控制器组织子目录,而 Controllers 目录包含所有的控制器类。

设计时要考虑到:

  • 代码的模块化 :每个部分都应该尽可能地独立,减少各个部分之间的依赖。
  • 可读性和可维护性 :代码应该是清晰、一致,便于其他开发者理解和维护。
  • 扩展性 :考虑未来可能的功能添加或变更,代码应该易于扩展。

5.2.2 MVC设计模式的性能优化和维护

在性能优化方面,MVC设计模式的项目可以通过以下方式提高性能和维护性:

  • 缓存 :在视图或模型中实现缓存机制,减少数据库访问次数,加快数据加载速度。
  • 代码复用 :通过创建基类控制器或视图来共享通用功能,减少代码重复。
  • 前端优化 :使用工具如Gulp或Grunt来压缩CSS和JavaScript,优化前端加载时间。
  • 后端优化 :对数据库进行索引优化,使用异步编程减少阻塞,提高响应速度。
  • 部署优化 :通过IIS或Azure等服务进行负载均衡和分布式部署,提高应用的可用性和扩展性。

通过持续的监控和评估性能指标,结合实际的业务需求,对MVC设计模式下的项目进行性能优化和维护,从而确保应用程序的稳定运行和良好用户体验。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:本书为C#学习者提供实战指导,包含理论知识与视频教程,帮助读者通过实例项目深入理解C#。内容涵盖环境搭建、基础编程概念、数据库操作、UI设计及高级编程技能。本书致力于让初学者及进阶者通过实践提升编程技能。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

内附1-19章的实战程序。 目录 第1章 c#语言及其开发环境 实例001 根据需要创建所需解决方案 实例002 统一窗体中控件的字体设置 实例003 设置程序代码行号 实例004 通过“格式”菜单布局窗体 实例005 为项目添加dll文件引用 实例006 为项目添加已有类 实例007 为项目添加第三方控件 实例008 为项目添加已有窗体 第2章 c#语言基础 实例009 利用for循环输出多行语句 实例010 输入并输出姓名 实例011 使用值类型和引用类型输出不同的字段 实例012 判断当前系统日期是星期几 实例013 定义局部变量输出不同的字段 实例014 定义循环内部变量并输出变量的值 实例015 定义常量计算圆的周长 实例016 使用“+”编写双重意义的表达式 实例017 使用小括号括起来的表达式 实例018 使用算术运算符开发简单计算器 实例019 使用条件运算符判断指定年份是不是闰年 实例020 使用typeof关键字获取类的内部结构 实例021 巧用位移运算符获取汉字编码值 实例022 使用异或运算符对数字进行加密 第3章 流程控制语句 实例023 利用if…else语句判断分数是否及格 实例024 利用switch语句判断时间 实例025 利用while语句判断大小 实例026 打印九九乘法表 实例027 使用break语句提前退出循环语句 实例028 使用continue语句转移至循环开始处 实例029 使用流程控制语句报销业务花销 实例030 输出当前系统时间 实例031 利用for循环实现完数计算 实例032 开发一个猜数字游戏 第4章 字符与字符串 实例033 字母与ascii码的转换 实例034 获取字符串中汉字的个数 实例035 从字符串中分离文件路径、文件名及扩展名 实例036 对字符串进行加密与解密 实例037 开发一个进制转换器 实例038 将字符串的每个字符进行颠倒输出 实例039 根据标点符号对字符串进行分行 实例040 将汉字转换为拼音 实例041 商品金额的大小写转换 实例042 根据年份判断十二生肖 实例043 将字母全部转换为大写或小写 实例044 汉字与区位码的转换 第5章 数组和集合 实例045 在数组中添加一个元素 实例046 在数组中添加一个数组 实例047 计算两个矩形矩阵的乘积 实例048 获取多维数组的行数与列数 实例049 使用快速排序法对一维数组进行排序 实例050 使用sort方法对数组进行快速排序 实例051 按指定条件在数组中检索元素 实例052 反转数组中元素的顺序 实例053 使用希尔排序法对一维数组进行排序 实例054 向班级集合中添加学生信息 实例055 不改变长度删除数组中的元素 实例056 删除数组元素后改变其长度 第6章 c#面向对象程序设计 实例057 创建类的对象 实例058 使用构造函数 实例059 通过定义方法求一个数的平方 实例060 使用重载方法实现不同类型数据的计算 实例061 使用属性存储用户编号和姓名 实例062 使用索引器 实例063 通过类继承计算梯形面积 实例064 封装类实现一个简单的计算器 实例065 通过结构计算矩形的面积 实例066 通过结构计算圆形的面积 实例067 使用面向对象思想查找字符串中的所有数字 实例068 通过类的多态性确定人类的说话行为 第7章 异常处理和程序调试 实例069 使用try…catch语句捕获异常 实例070 根据实际年龄判断虚岁,使用try…catch捕获异常 实例071 调试程序执行时出现的结果 实例072 使用异常处理语句捕获异常 实例073 捕获连接数据库异常 第8章 windows窗体 实例074 简单的登录窗体 实例075 关闭窗体提示 实例076 创建简单的mdi应用程序 实例077 实现重复高效地利用基窗体 实例078 尝试制作一个半透明渐显窗体 实例079 使窗体标题栏文字右对齐 实例080 窗口间移动按钮 实例081 窗体中滚动的字幕 实例082 使用任意组件拖动窗体 实例083 窗体换肤程序 第9章 windows应用程序常用控件 实例084 在c#中设计出色彩斑斓的按钮 实例085 自动删除textbox控件中的非法字符 实例086 在richtextbox控件中替换文本文字 实例087 利用richtextbox控件实现文字定位与标示 实例088 将数据表中的字段添加到combobox控件中 实例089 对listbox控件中的数据进行排序 实例090 listbox控件拒绝添加重复信息 实例091 限制用户名称长度及设置密码文本 实例092 带查询功能的combobox控件 实例093 利用选择控件实现权限设置 实例094 利用richtextbox控件显示图文数据 实例095 在listbox控件间交换数据 第10章 windows应用程序高级控件 实例096 使用imagelist组件制作动画图片 实例097 在combobox下拉列表中显示图片 实例098 在listview控件中实现修改功能 实例099 将数据库数据添加到listview控件 实例100 在listview控件中绘制底纹 实例101 在treeview控件节点中显示图片 实例102 使用树型列表动态显示菜单 实例103 使用treeview控件遍历磁盘目录 实例104 使用errorprovider组件验证文本框输入 实例105 使用helpprovider组件调用帮助文件 实例106 使listview控件中的选择项高亮显示 实例107 在列表视图中拖动视图项 实例108 实现带复选框的treeview控件 实例109 将xml文件节点绑定到treeview控件中 实例110 修改treeview控件的节点文本 第11章 c#面向对象高级技术 实例111 利用接口实现选择不同的语言 实例112 使用接口作为方法参数进行编程 实例113 自定义抽象类计算圆形的面积 实例114 重写抽象方法实现多态性 实例115 使用密封类密封登录用户信息 实例116 使用密封类封装个人身份证信息 实例117 使用迭代器显示公交车站点 实例118 通过迭代器实现文字的动态效果 实例119 使用分部类制作一个计算器 实例120 使用分部类显示员工信息 实例121 使用泛型存储不同类型的数据列表 实例122 使用泛型去掉数组中的重复数字 实例123 通过重写虚方法实现加法运算 实例124 使用迭代器实现倒序遍历 实例125 通过泛型查找数组中的元素 第12章 ado.net数据访问技术 实例126 连接加密的access数据库 实例127 使用odbc dsn连接sql server数据库 实例128 使用ado.net对象录入数据 实例129 利用存储过程录入数据 实例130 使用oledbdatareader读取文本文件的内容 实例131 使用sqldatareader读取用户登录信息 实例132 使用断开式连接的方式录入数据 实例133 使用断开式连接批量更新数据库中的数据 实例134 使datagridview控件中被选定单元格的所在行变色 实例135 在datagridview控件中隔行换色 实例136 连接excel文件 实例137 读取和保存用户头像 实例138 判断是否重复输入数据 实例139 删除datagridview控件中的指定行 实例140 将access数据库导入excel文件中 第13章 水晶报表与打印 实例141 设计带有背景图的水晶报表 实例142 设置水晶报表的打印日期与时间 实例143 设置水晶报表中节的背景图片 实例144 打印窗体中的数据 实例145 打印商品入库单据 实例146 使用打印控件实现分页打印 实例147 动态绑定水晶报表 实例148 在水晶报表中使用公式字段 实例149 设计分组统计报表 实例150 打印一个空学生证 实例151 自定义横向或纵向打印 实例152 自定义打印页码范围 第14章 文件及数据流技术 实例153 根据日期动态建立文件 实例154 将长文件名转换成短文件名 实例155 获取所有逻辑磁盘目录 实例156 使用递归法删除文件夹中的所有文件 实例157 按行读取文本文件中的数据 实例158 使用缓冲流复制文件 实例159 文件批量更名 实例160 复制文件时显示复制进度 实例161 对指定文件夹中的文件进行分类存储 实例162 将文本文件转换成网页文件 实例163 伪装文件夹 实例164 word目录提取工具 第15章 gdi+绘图 实例165 在图像中实现自定义标记 实例166 辉光效果的文字 实例167 渐变效果的文字 实例168 绘制多边形 实例169 简单画图程序 实例170 仿qq截图功能 实例171 模拟石英钟 实例172 绘制贝塞尔曲线 实例173 绘制图形验证码 实例174 以椭圆形显示图像 实例175 使用双缓冲技术绘图 实例176 批量添加图片水印 第16章 线程的使用 实例177 使用线程读取数据库中的数据 实例178 使用线程制作qq农场小游戏 实例179 使用线程实现大容量数据的计算 实例180 使用多线程制作端口扫描工具 实例181 使用线程扫描局域网ip地址 实例182 使用线程休眠控制图片以百叶窗效果显示 实例183 使用线程控制向窗体中拖放图片并显示 实例184 使用线程制作动画效果的状态栏 实例185 使用线程遍历文件夹 实例186 使用线程实现从左向右以拉伸的方式显示图像 第17章 网络编程技术 实例187 通过ip地址获取主机名称 实例188 创建web页面浏览器 实例189 获取网络信息及流量 实例190 远程关闭与重启计算机 实例191 设计点对点聊天程序 实例192 电子邮件的发送与接收 实例193 获取网络中所有工作组名称 实例194 列出指定工作组中的所有计算机名 实例195 监测当前网络连接状态 实例196 使用udp协议设计聊天室 第18章 注册表技术 实例197 禁止运行注册表 实例198 使应用程序开机自动运行 实例199 获取本机安装的软件清单 实例200 禁止使用windows任务管理器 实例201 清除ie地址栏中的历史网址 实例202 将磁盘驱动器隐藏 实例203 禁止使用命令提示符 实例204 禁止修改ie浏览器主页 实例205 设置ie浏览器的默认主页 实例206 设置ie浏览器的默认下载路径 第19章 c#语言新技术 实例207 使用隐式类型局部变量实现字母的大小写转换 实例208 使用扩展方法显示员工信息 实例209 使用lambda表达式查找指定字符串 实例210 检查序列中是否包含指定元素 实例211 使用linq在一个循环中遍历多个数组 实例212 过滤文章中包含指定单词的句子 实例213 使用linq生成随机序列 实例214 筛选指定类型的元素 实例215 使用linq技术对对象进行筛选操作 实例216 使用linq技术对对象进行排序操作 实例217 使用linq技术对对象进行聚合操作 实例218 使用linq技术对对象进行联接操作 第20章 windows应用程序打包部署 实例219 打包程序时设置桌面图标 实例220 打包.net framework 4.0框架
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值