C#核心笔记——(一)C#和.NET Framework

C#是一种通用的,类型安全的面向对象编程语言。其目标是提高程序员生产力。

一.面向对象

C#实现了丰富的面向对象范式,包括封装、继承、多态。

C#面向对象特性包括:
统一的类型系统
类与接口
属性、方法、事件
C#支持纯函数模式

二、类型安全性

C#是一门类型安全的语言。例如:C#不允许将字符串类型作为整数类型处理。

C#支持类型静态化。能够在程序运行前排除大量错误。

C#允许使用dynamic关键字动态定义指定类型。然而C#在大多情况下仍然是一门静态语言。

C#还是一门强类型语言。

三、内存管理

C#依靠运行时来实现自动内存管理。公共语言运行时的垃圾回收器会作为程序的一部分运行。

C#并未抛弃指针,关键字unsafe的程序块显式内存分配。

四、平台支持

Linux、macOS、iOS、Android

五、CLR

公共语言运行时(Common Language Runtime,CLR),如自动化内存管理和异常处理。

C#也会将代码编译为托管代码。托管代码以中间语言(Intermediate Language,IL)的形式表示。CRL通常会在执行前,将IL转换为机器(如x84、x64)原生代码,称为即时(Just-In-Time)编译。

六、.NET Framework

.NET Framework是由CLR和大量的程序库组成。

七、其他框架

UWP
.Net Core
ASP.NET Core
Xamarin

八、简史

8.1C# 7.0新特性

8.1.1 数字字面的改进

下划线改善可读性:

int million = 1_000_000;

二进制字面量使用Ob前缀来标识:

int a = 0b1001_0000;
var b = 0b1001_0000;

8.1.2 输出变量及参数忽略

调用含有out参数的方法将更加容易:

bool successful = int.TryParse("123", out int result);
Console.WriteLine(result);

当调用含有多个out参数方法时,可以使用下划线字符_忽略你并不关心的参数:

方法

static void SimpleMethod(out int result,out int result2 ,out int result3)
{
   
    result = 1 + 1;
    result2 = 2 + 2;
    result3 = 3 + 3;
}

调用

SimpleMethod(out _, out _, out int result2);

8.1.3 模式

is运算符也可以自然的引入变量,称为模式变量

方法

static void SimpleMethod2(object x)
{
   
    if(x is string s)
    {
   
        Console.WriteLine(s.Length);
    }
}

调用

SimpleMethod2("大家好呀");

同样 switch语句也同样支持模式。可以使用when子句来判断条件,或是直接选择null;

方法

static void SimpleMethod3(object? x)
        {
   
            switch(x)
            {
   
                case int i:
                    Console.WriteLine("It is an int"); 
                    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值