类型

C# 的类型是一种模板。

预定义类型和自定义类型

预定义类型(C#提供,包括简单类型 int short long uint、复杂类型 dynamic object string)

自定义类型(用户自定义类型。包括 class array interface enum struct delegate(委托))

用户可以自定义类型去描述任何对象

C#里类型无疑是重要的。没有类型则没有程序。

而在于 typescript 里 ts 是 js 的超集,使用更偏向于 声明一个类型,然后去使用。后续使用 ts 应该会偏向于 C#的里的用法,类型先行,类型不规范,报错。

接口

声明

声明一组**属性方法**的类型。

主要是用来声明 类、对象、数组,也可以声明一个接口类型的变量。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public interface IComprarable
{
int CompareTo(object obj);
// 声明参数类型与返回值类型
}

class MyClass: IComprarable
{
// 需要实现 CompareTo 方法
int CompareTo(object: obj)
{
return 0
}
}

使用 - 实现

使用接口声明,也可以叫做实现了接口。

接口是引用类型

类对象的强制装换

1
2
3
IIfc1 ifc = (IIfc1) mc;
// ^___ 转换为 IIfc1 接口

声明接口类型的变量

接口也是一个类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 声明
class MyClass: IVar
{
int age;
}
interface IVar
{
public int age;
}

// 使用
MyClass mc = new MyClass();

IVar var1 = (IVar) mc;
// ^___ 声明接口类型的变量
// ^___ 类型转换

强制类型转换:使用类型转换可以使得申明的 var1 通过 . 使用类对象的方法或者属性。

as 运算符

同上。也是为了类型转换。

使用 as 会更好地抛错。

实现多个 interface

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

interface IVar
{
public int age;
}

interface IVar1
{
public int age;
}

class MyClass: IVar, IVar1
{
int age;
}

接口继承

接口可以继承接口

接口可以继承多个