C#是什么?可以用来做什么?

2020-12-14 15:56:52 浏览数 (22998)

C#简介

        C#(读作“C Sharp”)是一种容易使用不复杂新型的编程语言,不仅是面向对象,它的类型还安全。C# 源于 C 语言系列,C、C++、Java 和 JavaScript 程序员很快就可以上手使用。C# 是一个现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的,由 Ecma 和 ISO 核准认可的。

        C# 是一种面向对象的语言。不仅仅是这样,C# 还能进一步地支持面向组件的编程。当代软件设计越来越依赖采用自描述的独立功能包形式的软件组件。此类组件的关键特征包括:为编程模型提供属性、方法和事件;包含提供组件声明性信息的特性;包含自己的文档。C# 提供了语言构造来直接支持这些概念,让 C# 成为一种非常自然的语言,可用于创建和使用软件组件。

        多项 C# 功能有助于构造可靠耐用的应用程序:垃圾回收可自动回收无法访问的未使用对象占用的内存;异常处理提供了一种结构化的可扩展方法来执行错误检测和恢复;C# 语言的类型安全设计禁止读取未初始化的变量、为范围之外的数组编制索引或执行未检查的类型转换。

        C# 采用统一的类型系统。所有 C# 类型(包括 int 和 double 等基元类型)均继承自一个根 object 类型。因此,所有类型共用一组通用运算,任何类型的值都可以一致地进行存储、传输和处理。此外,C# 还支持用户定义的引用类型和值类型,从而支持对象动态分配以及轻量级结构的内嵌式存储。

        为了确保 C# 程序和库能够随着时间的推移以兼容的方式发展,C# 设计更强调版本控制。许多编程语言很少关注这个问题,因此,当引入新版依赖库时,用这些语言编写的程序会出现更多不必要的中断现象。由于更强调版本控制,直接受影响的 C# 设计方面包括单独的 virtual 和 override 修饰符、关于方法重载决策的规则,以及对显式接口成员声明的支持。

Hello world

“Hello, World”程序历来都用于介绍编程语言。下面展示了此程序的 C# 代码:

using System;

class Hello

{

    static void Main()

    {

        Console.WriteLine("Hello, World");

    }

}

C# 源文件的文件扩展名通常为 .cs。假设“Hello, World”程序存储在文件 hello.cs 中,则可以使用下列命令行编译此程序:

csc hello.cs

这会生成 hello.exe 可执行程序集。运行此应用程序生成以下输出:

Hello, World


编译 csc 命令实现的是完整框架,可能并不所有平台都适用。

        “Hello, World”程序始于引用 System 命名空间的 using 指令。命名空间提供了一种用于组织 C# 程序和库的分层方法。命名空间包含类型和其他命名空间。例如,System 命名空间包含许多类型(如程序中引用的 Console 类)和其他许多命名空间(如 IO 和 Collections)。借助引用给定命名空间的 using 指令,可以非限定的方式使用作为相应命名空间成员的类型。由于使用 using 指令,因此程序可以使用 Console.WriteLine 作为 System.Console.WriteLine 的简写。

        “Hello, World”程序声明的 Hello 类只有一个成员,即 Main 方法。Main 方法是使用静态修饰符进行声明。实例方法可以使用关键字 this 引用特定的封闭对象实例,而静态方法则可以在不引用特定对象的情况下运行。按照约定,Main 静态方法是程序的入口点。

        程序的输出是由 System 命名空间中 Console 类的 WriteLine 方法生成。此类由标准类库提供。默认情况下,编译器会自动引用标准类库。

        关于 C#,要介绍的内容还有很多。下面各主题概述了 C# 语言元素。通过这些概述,可以了解 C# 语言所有元素的基本信息,并获得深入了解 C# 语言元素所需的信息:

C#语言元素

  • 程序结构
    了解 C# 语言中的关键组织概念:程序、命名空间、类型、成员和程序集。
  • 类型和变量
    了解 C# 语言中的值类型、引用类型和变量。
  • 表达式
    表达式是在操作数和运算符的基础之上构造而成。表达式生成的是值。
  • 语句
    语句用于表示程序的操作。
  • 类和对象
    类是最基本的 C# 类型。对象是类实例。类是使用成员生成的,此主题也对此进行了介绍。
  • 结构
    与类不同,结构是属于值类型的数据结构。
  • 数组
    数组是一种数据结构,其中包含许多通过计算索引访问的变量。
  • 接口
    接口定义了可由类和结构实现的协定。接口可以包含方法、属性、事件和索引器。接口不提供所定义的成员的实现代码,仅指定必须由实现接口的类或结构提供的成员。
  • 枚举
    枚举类型是包含一组已命名常量的独特值类型。
  • 委托
    委托类型表示对具有特定参数列表和返回类型的方法的引用。通过委托,可以将方法视为可分配给变量并可作为参数传递的实体。委托类似于其他一些语言中的函数指针概念,但与函数指针不同的是,委托不仅面向对象,还类型安全。
  • 特性
    使用特性,程序可以指定关于类型、成员和其他实体的附加声明性信息。

想要学习C#需要更多的时间和精力,小编总结了非常好的C#教程,可供读者参考