C#学习笔记01之.NET与C#

.NET

.NET(读作“dot net”)是Microsoft推出的用于软件开发、运行的平台,可以实现跨平台、跨语言开发,支持C#、F#、Visual Basic等语言。

.NET Framework是名为公共语言运行时(Common Language Runtime,CLR)的虚执行系统和一组类库。CLR是对公共语言基础结构(Common Language Infrastructure,CLI)国际标准的实现。CLI是创建执行和开发环境的基础,语言和库可以在其中协同工作。

C#

C#(读作“C Sharp”)是Microsoft推出的,由C和C++衍生出的,安全、稳定、简单、优雅的面向对象且运行于.NET Framework和.NET Core之上的高级程序编程语言,于2000年6月发布。它在继承C和C++强大功能的同时去掉了一些复杂特性如多重继承、内存管理,并提供了大量API以显著提高开发效率。

C#源代码(.cs文件) 并不直接编译成能在操作系统执行的二进制本地代码,而是被编译成符合CLI规范的中间语言(Intermediate Language,IL),然后由CLR执行。IL代码和资源(如位图和字符串)存储在扩展名为.dll或.exe的程序集中。由于程序集是包含代码和元数据的子描述功能单元,因此C#不需要显示引用头文件。

执行C#程序时,程序集将加载到CLR。CLR会直接执行实时编译(Just In Time,JIT),将IL代码转换成二进制机器码。CLR可提供其他与自动垃圾回收、异常处理和资源管理相关的服务。CLR执行的代码有时称为“托管代码”,而“非托管代码”被编译成面向特定平台的本机语言。

C#编译器生成的IL代码符合通用类型系统(Common Type System,CTS)。通过C#生成的IL代码可以与通过.NET版本的F#、Visual Basic、C++生成的代码进行交互。

第一个程序

按照惯例,使用“Hello World”实现第一个C#程序,代码如下:

// 引用命名空间
using System;

// 自定义命名空间
namespace MyCode
{
    // 自定义类
    class Hello
    {
        // Main入口函数
        static void Main()
        {
            // 控制台打印“Hello World”
            Console.WriteLine("Hello World");
        }
    }
}

其中:

  • using System;:通过using指令引用名为System的命名空间。
  • namespace MyCode:通过namespace关键字声明命名空间MyCode,此命名空间包含了Hello类。
  • class Hello:使用class关键字声明Hello类,该类只包含一个Main方法。
  • static void Main():方法成员Main()是一个 static(静态)的、无参、返回值为void(空)、只包含一个语句的方法。
  • Console.WriteLine("Hello World");:调用了Console类的WriteLine()方法,在控制台打印参数“Hello World”。Console是命名空间System中的一个类,提供了控制台相关的API,因此在代码开头要引用System

命名空间

命名空间提供了一种用于组织C#程序和库的分层方法,用于组织、管理、重用重名的类型和方法。使用namespace关键字声明命名空间,用{}包裹其下的内容(各种类型与其他命名空间,命名空间可以嵌套,通过.引用多层命名空间)。

在代码中使用其他命名空间的类型时需要显示指明命名空间。

System.Console.WriteLine("Hello World");

借助引用给定命名空间的using指令,可以简化调用,即允许非限定的方式使用相应命名空间的成员。

using System;

Console.WriteLine("Hello World");

此外,可以使用using重命名相关命名空间的类型。

using SConsole = System.Console;

SConsole.WriteLine("Hello World");

Main方法

按照约定,C#程序的入口是名为Main()的静态方法(库和服务不要求)。Main()在类或结构中声明,必须是static(封闭类或结构不一定要是静态的),不需要是public

语句

程序操作使用语句进行表示,每个语句由;结尾。使用{}包裹的语句称为语句块,可以包含一个或多个语句。

标识符

标识符是分配给类型、成员、变量、命名空间或任何其它用户定义的项目的名称。有效标识符必须以字母或下划线_开头,并使用Unicode字符,不能包含任何嵌入的空格或符号。C#是大小写敏感的,标识符必须区分大小写。

通常,标识符不能是C#关键字或保留关键字。使用前缀@允许将C#关键字用作为标识符,即逐字标识符,用于与其他语言交互。

标识符命名有以下约定:

  • 见名知意。
  • 标识符不应包含两个连续的下划线_,这些名称将保留给编译器生成的标识符。
  • 通常对类型和方法等使用帕斯卡拼写法(PascalCasing),对变量、参数等使用驼峰式拼写法(camelCasing)。

注释

注释是用于解释代码。优秀的程序员能够在适当的地方进行合适的注释,以提高代码可读性。编译器会忽略注释的条目。

C#中注释有:

  • 单行注释:以//开头至行的末尾。
  • 多行注释:以/*开头并*/结尾。
  • XML注释:在成员前使用///和XML标签包裹,可以在非定义处查看对该成员的注释,亦是文档生成器的标记。
// 这是单行注释

/* 这是
 * 多
 * 行
 * 注
 * 释
 */

/// <summary>
/// Hello是一个自定义类
/// </summary>
class Hello { }

注释有以下约定:

  • 在注释分隔符与注释文本之间插入一个空格。
  • 将注释放在单独的行上,而非代码行的末尾。
  • 确保所有公共成员都有必要的XML注释,为其行为提供适当说明。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值