C
入门自
class:都是引用类型(被函数调用时直接访问地址对应的值),分配在堆
csharp
class myclass
{
public int x;
protected double y;
...
}
-
struct:值类型(被函数调用时拷贝一个struct,不会影响原来那个struct的值),分配在栈,也可以有变量和函数,ref可以传递引用 -
interface:函数的集合,告诉别人有哪些函数可以供使用
csharp
interface A
{
void Func();
}
继承: 同c++的继承思想,
csharp
class B : A
{
...
}
-
abstract:抽象类,不可被实例化,因为由部分未实现的函数,等待子类去实现 -
函数的覆盖: virtual override 子类重写 -
子类可以调用protected
-
所有类型都有基类
System.Object,ToString()函数可以重写 -
泛型
<T>可以用于类或函数,使用where进行约束 - 容器:
- 动态数组:
List可动态增长 - 字典:
DictionaryKey-Value对,用于查询 - Hash集合:
Hashset保证数据的唯一 - 栈:
StackPush Pop 后进先出 - 队列:
QueueEnqueue Dequeue 先进先出
- 动态数组:
- 函数指针:
delegate可以存储函数,使用+=-= 增删,本质上是监听者模式Action<T1T2>无返回值的delegateFunc<T1,T2,TResult>有返回值的delegate,返回值类型为TResult
- 属性
Attribute,可以给类,变量,函数 添加额外的代码信息,配合反射使用 - 反射:获取代码信息,可以获取一个程序集,类,函数,变量等信息,使用
obiect.GetType()或typeof(T)来获取类型信息 - 宏:条件编译,通过定义宏来切换代码开关#if #else #endif #define #undef