C# 教程

278课时
752学过
10分

1. C# 教程

C# 简介

谁适合阅读本教程?

C# 有用的网站

C# 强大的编程功能

C# 环境

.Net 框架(.Net Framework)

C# 的集成开发环境

在 Linux 或 Mac OS 上编写 C# 程序

C# 程序结构

C# Hello World 实例

编译 & 执行 C# 程序

C# 基本语法

C# 基本语法-实例

using 关键字

class 关键字

C# 中的注释

成员变量

成员函数

实例化一个类

标识符

C# 关键字

C# 数据类型

值类型(Value types)

引用类型(Reference types)

对象(Object)类型

动态(Dynamic)类型

字符串(String)类型

指针类型(Pointer types)

C# 类型转换

C# 类型转换-实例

C# 类型转换方法

C# 类型转换方法-实例

C# 变量

C# 中的变量定义

C# 中的变量初始化

C# 中的变量初始化-实例

接受来自用户的值

C# 中的 Lvalues 和 Rvalues

C# 常量

整数常量

浮点常量

字符常量

字符常量-实例

字符串常量

定义常量

定义常量-实例

C# 运算符

算术运算符

算术运算符-实例1

算术运算符-实例2

关系运算符

关系运算符-实例

逻辑运算符

逻辑运算符-实例

位运算符

位运算符-实例

赋值运算符

赋值运算符-实例

其他运算符

其他运算符-实例

C# 中的运算符优先级

C# 中的运算符优先级-实例

C# 判断

判断语句

? : 运算符

C# 循环

循环类型

循环控制语句

无限循环

无限循环-实例

C# 封装

Public 访问修饰符

Public 访问修饰符-实例

Private 访问修饰符

Private 访问修饰符-实例

Protected 访问修饰符

Internal 访问修饰符

Internal 访问修饰符-实例

Protected Internal 访问修饰符

C# 方法

C# 中定义方法

C# 方法元素

C# 中定义方法-实例

C# 中调用方法

C# 中调用方法-实例1

C# 中调用方法-实例2

递归方法调用

参数传递

按值传递参数

按值传递参数-实例

按引用传递参数

按引用传递参数-实例

按输出传递参数

按输出传递参数-实例1

按输出传递参数-实例2

C# 单问号 ? 与 双问号 ??

C# 可空类型(Nullable)

C# 可空类型(Nullable)-实例

Null 合并运算符( ?? )

Null 合并运算符( ?? )-实例

C# 数组(Array)

声明数组

初始化数组

赋值给数组

访问数组元素

访问数组元素-实例

使用 foreach 循环

使用 foreach 循环-实例

C# 数组细节

C# 字符串(String)

创建 String 对象

创建 String 对象-实例

String 类的属性

String 类的方法

String 类的方法-实例1

String 类的方法-实例2

String 类的方法-实例3

String 类的方法-实例4

C# 结构体(Struct)

定义结构体

定义结构体-实例

C# 结构的特点

类 vs 结构

类 vs 结构-实例

C# 枚举(Enum)

声明 enum 变量

声明 enum 变量-实例

C# 类(Class)

类的定义

类的定义-实例

成员函数和封装

成员函数和封装-实例

C# 中的构造函数

C# 中的构造函数-实例1

C# 中的构造函数-实例2

C# 中的析构函数

C# 中的析构函数-实例

C# 类的静态成员

C# 类的静态成员-实例1

C# 类的静态成员-实例2

C# 继承

基类和派生类

基类和派生类-实例

基类的初始化

基类的初始化-实例

C# 多重继承

C# 多重继承-实例

C# 多态性

静态多态性

函数重载

函数重载-实例1

函数重载-实例2

动态多态性

动态多态性-实例

虚方法

虚方法-实例1

虚方法-实例2

C# 运算符重载

运算符重载的实现

可重载和不可重载运算符

可重载和不可重载运算符-实例

C# 接口(Interface)

定义接口: MyInterface.cs

定义接口: MyInterface.cs-实例

接口继承: InterfaceInheritance.cs

C# 命名空间(Namespace)

定义命名空间

定义命名空间-实例

using 关键字

using 关键字-实例

嵌套命名空间

嵌套命名空间-实例

C# 预处理器指令

C# 预处理器指令列表

#define 预处理器

#define 预处理器-实例

条件指令

条件指令-实例

C# 正则表达式

定义正则表达式

字符转义

字符类

定位点

分组构造

分组构造-实例

限定符

反向引用构造

备用构造

替换

杂项构造

Regex 类

C# 正则表达式-实例1

C# 正则表达式-实例2

C# 正则表达式-实例3

C# 异常处理

语法

C# 中的异常类

异常处理

异常处理-实例

创建用户自定义异常

创建用户自定义异常-实例

抛出对象

C# 文件的输入与输出

C# I/O 类

FileStream 类

FileStream 类-实例

C# 高级文件操作

2. C# 高级教程

C# 特性(Attribute)

规定特性(Attribute)

预定义特性(Attribute)

AttributeUsage

AttributeUsage-实例

Conditional

Conditional-实例

Obsolete

Obsolete-实例

创建自定义特性(Attribute)

声明自定义特性

构建自定义特性

构建自定义特性-实例

应用自定义特性

C# 反射(Reflection)

反射(Reflection)的优缺点

反射(Reflection)的用途

查看元数据

查看元数据-实例1

查看元数据-实例2

C# 属性(Property)

访问器(Accessors)

访问器(Accessors)-实例

抽象属性(Abstract Properties)

C# 索引器(Indexer)

索引器(Indexer)的用途

索引器(Indexer)-实例

重载索引器(Indexer)

重载索引器(Indexer)-实例

C# 委托(Delegate)

声明委托(Delegate)

实例化委托(Delegate)

委托(Delegate)-实例

委托的多播(Multicasting of a Delegate)

委托的多播(Multicasting of a Delegate)-实例

委托(Delegate)的用途

C# 事件(Event)

通过事件使用委托

声明事件(Event)

C# 事件(Event)-实例1

C# 事件(Event)-实例2

C# 集合(Collection)

各种集合类和它们的用法

C# 泛型(Generic)

C# 泛型(Generic)-实例

泛型(Generic)的特性

泛型(Generic)方法

泛型(Generic)委托

泛型(Generic)委托-实例

C# 匿名方法

编写匿名方法的语法

C# 匿名方法-实例

C# 不安全代码

指针变量

指针变量-实例

使用指针检索数据值

传递指针作为方法的参数

使用指针访问数组元素

使用指针访问数组元素-实例

编译不安全代码

C# 多线程

线程生命周期

主线程

主线程-实例

Thread 类常用的属性和方法

创建线程

创建线程-实例

管理线程

管理线程-实例

销毁线程

销毁线程-实例

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
5分钟

C# Hello World 实例

让我们看一个可以打印出 "Hello World" 的简单的代码:

using System;
namespace HelloWorldApplication
{
   class HelloWorld
   {
      static void Main(string[] args)
      {
         /* 我的第一个 C# 程序*/
         Console.WriteLine("Hello World");
         Console.ReadKey();
      }
   }
}

当上面的代码被编译和执行时,它会产生下列结果:

Hello World

让我们看一下上面程序的各个部分:

  • 程序的第一行 using System; - using 关键字用于在程序中包含 System 命名空间。 一个程序一般有多个 using 语句。
  • 下一行是 namespace 声明。一个 namespace 里包含了一系列的类。HelloWorldApplication 命名空间包含了类 HelloWorld
  • 下一行是 class 声明。类 HelloWorld 包含了程序使用的数据和方法声明。类一般包含多个方法。方法定义了类的行为。在这里,HelloWorld 类只有一个 Main 方法。
  • 下一行定义了 Main 方法,是所有 C# 程序的 入口点Main 方法说明当执行时 类将做什么动作。
  • 下一行 /*...*/ 将会被编译器忽略,且它会在程序中添加额外的 注释
  • Main 方法通过语句 Console.WriteLine("Hello World"); 指定了它的行为。 WriteLine 是一个定义在 System 命名空间中的 Console 类的一个方法。该语句会在屏幕上显示消息 "Hello, World!"。
  • 最后一行 Console.ReadKey(); 是针对 VS.NET 用户的。这使得程序会等待一个按键的动作,防止程序从 Visual Studio .NET 启动时屏幕会快速运行并关闭。

以下几点值得注意:

  • C# 是大小写敏感的。
  • 所有的语句和表达式必须以分号(;)结尾。
  • 程序的执行从 Main 方法开始。
  • 与 Java 不同的是,文件名可以不同于类的名称。