学习笔记之C# 教程 | 菜鸟教程

本文是关于C#编程的全面教程,涵盖了C#的关键特性,如值类型、引用类型、动态数据类型、字符串操作、数组、方法、类与结构、枚举、继承与多态、异常处理、文件操作等。同时,提到了Visual Studio、Mono等开发工具,以及.NET框架和C#在实际应用中的各种功能,适合初学者和进阶者学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C# 教程 | 菜鸟教程

http://www.runoob.com/csharp/csharp-tutorial.html

菜鸟教程在线编辑器

http://www.runoob.com/try/runcode.php?filename=HelloWorld&type=cs

  • C# Programming Guide - 介绍了有关关键的 C# 语言特征以及如何通过 .NET 框架访问 C# 的详细信息。
  • Visual Studio - 下载作为 C# 集成开发环境的 Visual Studio 的最新版本。
  • Go Mono - Mono 是一个允许开发人员简单地创建跨平台应用程序的软件平台。
  • C Sharp (programming language) - 维基百科解释 C#(编程语言)。
  • C# 一些重要的功能:在 C# 中,变量分为以下几种类型:值类型(Value types)/ 引用类型(Reference types)/ 指针类型(Pointer types)值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。值类型直接包含数据。比如 int、char、float,它们分别存储数字、字母、浮点数。当您声明一个 int 类型时,系统分配内存来存储值。如需得到一个类型或一个变量在特定平台上的准确尺寸,可以使用 sizeof 方法。表达式 sizeof(type) 产生以字节为单位存储对象或类型的存储尺寸。引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。换句话说,它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。内置的 引用类型有:object、dynamic 和 string。对象(Object)类型 是 C# 通用类型系统(Common Type System - CTS)中所有数据类型的终极基类。Object 是 System.Object 类的别名。所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。当一个值类型转换为对象类型时,则被称为 装箱;另一方面,当一个对象类型转换为值类型时,则被称为 拆箱。
    • 布尔条件(Boolean Conditions)
    • 自动垃圾回收(Automatic Garbage Collection)
    • 标准库(Standard Library)
    • 组件版本(Assembly Versioning)
    • 属性(Properties)和事件(Events)
    • 委托(Delegates)和事件管理(Events Management)
    • 易于使用的泛型(Generics)
    • 索引器(Indexers)
    • 条件编译(Conditional Compilation)
    • 简单的多线程(Multithreading)
    • LINQ 和 Lambda 表达式
    • 集成 Windows
  • 您可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。
  • 动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。
  • 字符串(String)类型 允许您给变量分配任何字符串值。字符串(String)类型是 System.String 类的别名。它是从对象(Object)类型派生的。字符串(String)类型的值可以通过两种形式进行分配:引号和 @引号。
  • C# string 字符串的前面可以加 @(称作"逐字字符串")将转义字符(\)当作普通字符对待
  • @ 字符串中可以任意换行,换行符及缩进空格都计算在字符串长度之内。
  • 用户自定义引用类型有:class、interface 或 delegate。
  • 指针类型变量存储另一种类型的内存地址。C# 中的指针与 C 或 C++ 中的指针有相同的功能。
  • 类型转换从根本上说是类型铸造,或者说是把数据从一种类型转换为另一种类型。在 C# 中,类型铸造有两种形式:
    • 隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。
    • 显式类型转换 - 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。
  • C# 提供了下列内置的类型转换方法:C# 中提供的基本的值类型:空类型 可为空值的数据类型C# 允许定义其他值类型的变量,比如 enum,也允许定义引用类型变量,比如 class。System 命名空间中的 Console 类提供了一个函数 ReadLine(),用于接收来自用户的输入,并把它存储到一个变量中。函数 Convert.ToInt32() 把用户输入的数据转换为 int 数据类型,因为 Console.ReadLine() 只接受字符串格式的数据。
    • ToBoolean 如果可能的话,把类型转换为布尔型。
    • ToByte 把类型转换为字节类型。
    • ToChar 如果可能的话,把类型转换为单个 Unicode 字符类型。
    • ToDateTime 把类型(整数或字符串类型)转换为 日期-时间 结构。
    • ToDecimal 把浮点型或整数类型转换为十进制类型。
    • ToDouble 把类型转换为双精度浮点型。
    • ToInt16 把类型转换为 16 位整数类型。
    • ToInt32 把类型转换为 32 位整数类型。
    • ToInt64 把类型转换为 64 位整数类型。
    • ToSbyte 把类型转换为有符号字节类型。
    • ToSingle 把类型转换为小浮点数类型。
    • ToString 把类型转换为字符串类型。
    • ToType 把类型转换为指定类型。
    • ToUInt16 把类型转换为 16 位无符号整数类型。
    • ToUInt32 把类型转换为 32 位无符号整数类型。
    • ToUInt64 把类型转换为 64 位无符号整数类型。
  • 整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,没有前缀则表示十进制。整数常量也可以有后缀,可以是 U 和 L 的组合,其中,U 和 L 分别表示 unsigned 和 long。后缀可以是大写或者小写,多个后缀以任意顺序进行组合。
  • 一个浮点常量是由整数部分、小数点、小数部分和指数部分组成。您可以使用小数形式或者指数形式来表示浮点常量。使用小数形式表示时,必须包含小数点、指数或同时包含两者。使用指数形式表示时,必须包含整数部分、小数部分或同时包含两者。有符号的指数是用 e 或 E 表示的。
  • 字符常量是括在单引号里,例如,'x',且可存储在一个简单的字符类型变量中。一个字符常量可以是一个普通字符(例如 'x')、一个转义序列(例如 '\t')或者一个通用字符(例如 '\u02C0')。在 C# 中有一些特定的字符,当它们的前面带有反斜杠时有特殊的意义,可用于表示换行符(\n)或制表符 tab(\t)。
  • 字符常量是括在双引号 "" 里,或者是括在 @"" 里。字符串常量包含的字符与字符常量相似,可以是:普通字符、转义序列和通用字符使用字符串常量时,可以把一个很长的行拆成多个行,可以使用空格分隔各个部分。
  • C# 支持的其他一些重要的运算符您可以把一个 switch 作为一个外部 switch 的语句序列的一部分,即可以在一个 switch 语句内使用另一个 switch 语句。即使内部和外部 switch 的 case 常量包含共同的值,也没有矛盾。 C# 也支持 foreach 循环,使用foreach可以迭代数组或者一个集合对象。抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象。
    • sizeof() 返回数据类型的大小。 sizeof(int),将返回 4.
    • typeof() 返回 class 的类型。 typeof(StreamReader);
    • is 判断对象是否为某一类型。 If( Ford is Car) // 检查 Ford 是否是 Car 类的一个对象。
    • as 强制转换,即使转换失败也不会抛出异常。 Object obj = new StringReader("Hello"); StringReader r = obj as StringReader;
  • C# 封装根据具体的需要,设置使用者的访问权限,并通过 访问修饰符 来实现。一个 访问修饰符 定义了一个类成员的范围和可见性。C# 支持的访问修饰符如下所示:Internal 访问说明符允许一个类将其成员变量和成员函数暴露给当前程序中的其他函数和对象。换句话说,带有 internal 访问修饰符的任何成员可以被定义在该成员所定义的应用程序内的任何类或方法访问。如果没有指定访问修饰符,则使用类成员的默认访问修饰符,即为 private。Protected Internal 访问修饰符允许在本类,派生类或者包含该类的程序集中访问。这也被用于实现继承。一个方法是把一些相关的语句组织在一起,用来执行一个任务的语句块。每一个 C# 程序至少有一个带有 Main 方法的类。
    • public:所有对象都可以访问;
    • private:对象本身在对象内部可以访问;
    • protected:只有该类对象及其子类对象可以访问
    • internal:同一个程序集的对象可以访问;
    • protected internal:访问限于当前程序集或派生自包含类的类型。
  • 方法的元素:Access Specifier:访问修饰符,这个决定了变量或方法对于另一个类的可见性。
  • 您可以使用方法名调用方法。您也可以使用类的实例从另一个类中调用其他类的公有方法。
  • 引用参数是一个对变量的内存位置的引用。在 C# 中,使用 ref 关键字声明引用参数。
  • C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。< data_type> ? <variable_name> = null;
  • Null 合并运算符用于定义可空类型和引用类型的默认值。Null 合并运算符为类型转换定义了一个预设值,以防可空类型的值为 Null。Null 合并运算符把操作数类型隐式转换为另一
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值