C#

创建时间:
2014-03-05 08:01
最近更新:
2018-06-16 11:03

Resource - MSDN

  1. Visual C# - Entrance (zh-CN)
  2. Visual C# - Entrance (en-US)
  3. Visual C# - Entrance (Visual Studio)
  1. Visual C# 入门
  2. 使用 Visual C# 开发环境
  3. C# Programming Guide - 编程指南 (zh-CN)
  4. C# Programming Guide - 编程指南 (en-US)
  5. C# Reference - 参考 (zh-CN)
  6. C# Reference - 参考 (en-US)
  7. C# 演练
  8. C# 示例 - 开发人员代码示例
  9. C# 语言规范 or: C:\Program Files\VisualStudioUltimate2013\VC#\Specifications\2052
  1. C# Keywords - 关键字 - 关键字是对编译器具有特殊意义的预定义保留标识符。它们不能在程序中用作标识符,除非它们有一个 @ 前缀。例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字 ("C# 程序任意部分中的 保留标识符的关键字" & "C# 中的上下文关键字")
  1. 修饰符 (C# 参考) - 2018-02-27 该页面共列出了以下 18 个修饰符: public, private, internal, protected, abstract, async, const, event, extern, new, override, partial, readonly, sealed, static, unsafe, virtual, volatile,这些修饰符都属于 "C# 关键字"。
  2. C# Operators - 运算符
  3. 类和结构 (C# 编程指南)
  4. 成员 (C# 编程指南)
  5. 如何实现 - C# - 是了解关于 C# 编程和应用程序开发的基于任务的主要主题的途径。此主题列出可以使用 C# 完成的基本任务类别。这些链接可引导您找到基于过程的重要帮助页。

Resource - MSDN - 相等比较

  1. 相等比较 (C# 编程指南
  2. System.Object.ReferenceEquals(Object, Object)
  3. 如何: 测试引用相等性 (标识) (C# 编程指南 - ReferenceEquals() 始终为值类型返回 false、不应使用 ReferenceEquals() 来确定字符串相等性。
  4. 如何: 为类型定义值相等性 (C# 编程指南)

Resource - MSDN - 运算符重载

  1. 运算符重载
  2. 运算符重载
  3. 运算符重载(C# 与 Java)
  4. 运算符重载教程
  5. 可重载的运算符
  6. 可重载运算符(C# 编程指南)
  7. 运算符(C# 参考) - operator 关键字
  8. 重载一元运算符

Resource - 命名参数、可选参数

  1. MSDN - 命名实参和可选实参 (C# 编程指南) - 命名参数, 可选参数
  2. MSDN - Named and Optional Arguments (C# Programming Guide) - Named Arguments, Optional Arguments
  3. C#4 中的命名参数
  4. C#4 中默认参数和命名参数后的函数重载
  5. C# 可选参数、命名参数

Resource - 字符串 与 正则表达式

  1. 在 .NET Framework 中操作字符串
  2. System.Text.RegularExpressions 命名空间 - 正则表达式

Resource

  1. 每一个 C# 开发者必须知道的 13 件事情
  2. 从键盘布局开始说 C# 中的符号
  3. C# 的设计缺陷:显式实现接口内的事件
  4. 浅析 C# 中的 == 和 Equals
  5. 详解 C# 迭代器
  6. 不用 IDE 写 C# 的 Hello World
  7. 不用 Visual Studio 也能开发 .NET Windows 应用

this - C# 保留标识符关键字、非 上下文关键字

官方文档

this 关键字指代类的当前实例,还可用作扩展方法的第一个参数的修饰符。
静态成员函数,因为它们存在于类级别且不属于对象,不具有 this 指针。在静态方法中引用 this 是错误的。

-- this (C# 参考)

用途

  1. 限定类似名称隐藏的成员 / 用于区分 同名的 字段与变量 / 引用类的实例的成员 (字段、属性、方法 等,如果无同名变量 覆盖/隐藏 则可以省略 this)
  2. 将对象作为参数传递给方法
  3. 声明索引器
  4. 用于继承构造函数 / 在一个构造函数中引用另一个构造函数
  5. 定义扩展方法

用于区分 同名的 字段与变量

public class A
{
    private string name;
    public Employee(string name)
    {
        // "this.name" 表示类的字段;
        // "name" 表示方法的参数。
        this.name = name;
    }
}

改为

public class A
{
    private string _name;
    public Employee(string name)
    {
        _name = name;
    }
}

就可以不使用 this 了,因为此处 name 是唯一的。

用于继承构造函数

public class Test
{
    public Test()
    {
        Console.WriteLine("无参构造函数");
    }

    //下一行的 this 指向上面的 无参构造函数。相当于继承了 无参构造函数。
    public Test(string text) : this()
    {
        //本方法执行时 会先执行 Test 无参构造函数,然后再执行下面 2 行代码:
        Console.WriteLine(text);
        Console.WriteLine("有参构造函数");
    }
}

public class Program
{
    static void Main(string[] args)
    {
        Test test = new Test("张三");
    }
}