C#回顾

好多年没有使用C#了,最近由于工作的需要,又重新的捡了起来,发现好多内容都已经忘记脑后了,真是惭愧,花了一个小时的时间回顾了一下,怕下次又发生遗忘,现由浅入深地慢慢回忆,并归纳整理,便于以后查阅:

1)C# 中没有单独的声明(头)和实现(CPP)文件。所有代码(类声明和实现)都放在扩展名为 cs 的单一文件中;

2)C#中的所有内容都是在生命的类中,所有类都在命名空间中,using类似于C++中的#include,后面跟着命名空间的名称,用来调用命名空间;

3)C#中的变量在访问前必须先进行初始化,否则会发生编译错误;

4)值类型是在栈(stack)中分配的数据类型。它们包括了除字符串的所有基本和内建类型、结构和枚举类型;

5)引用类型在堆(heap)中分配内存,当其不再使用时,由C#中的自动由垃圾回收系统回收,引用类型包括:类、接口、集合类型(如数组)、字符串;

6)readonly 修饰符仅用于修饰类的数据成员,其与const数据成员不同之处在于const要求你在声明时进行直接初始化,而readonly可以先声明,然后再过程中再进行一次赋值;

7)C#中你不能对类进行多重继承,可以通过接口的方式实现;

8)C#的数组方括号在类型后面而不是在变量名后面,创建元素使用 new 运算符;

9)索引器用于书写一个可以通过使用 [] 像数组一样直接访问集合元素的方法,所需要做的只是指定待访问实例或元素的索引,如下所示:

class Shapes: CollectionBase


    public void add(Shape shp)

     { 
        List.Add(shp);

     }
    //indexer
    public Shape this[int index]

     { 
        get { 
            return (Shape) List[index];

         } 

         set{
            List[index] = value;

          }

     }

}

10)装箱的思想在 C# 中是创新的,所有的数据类型,无论是内建的还是用户定义的,都是从 System 命名空间的基类 object 继承的,所以基础的或是原始的类型打包为一个对象称为装箱,相反的处理称为拆箱。

4)函数的参数传递方式有三种,即按值传递、按引用传递和输出参数,按值传递就是普通的参数传递方式;按引用传递则类似于C++的按地址传递方式,只不过采用了ref关键字,如下所示:

int a= 5; 
FunctionA(ref a); // 使用 ref,否则将引发编译时错误
Console.WriteLine(a); // 打印 20 
void FunctionA(ref int Val)

    int x= Val; 
    Val = x*4;    
}

而输出参数的传递方式是只从函数返回值的参数,对输入值不要求,使用关键字out表示输出参数,如下所示:

int Val; 
GetNodeValue(Val); 
bool GetNodeValue(out int Val)
{
    Val = value;
    return true;

5)在C#中,数组也可以作为函数的参数,但是必须使用关键字params进行传递,并且只允许一个参数使用数组参数且是函数的最右边参数(即最后一个参数);

6)委托(delegate)可以让我们把函数引用到变量之中,就像C++中使用typedef来保存函数指针一样;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值