zoukankan      html  css  js  c++  java
  • C#中的一些基础

    值类型与引用类型

    值类型包括:【基本数据类型,如int,double,char,bool等】【枚举类型enum】【结构类型struct】

    引用类型包括:【类类型,如基类Object,字符串类String等】【接口interface】【数组】

    值类型可用ref与out,来实现参数的引用传递。

    ref表示以引用方式将一个变量带入一个函数中,out用于实现一个函数多个返回值,用out修饰的参数需要在函数内部赋值。

    访问修饰符

    类的访问修饰符有:public,internal,abstract,sealed,static

    成员的访问修饰符有:public,private,protected,internal,protected internal

              abstract,virtual,new,overrid

              static 

              extern

    装箱与拆箱

    把值类型数据放在堆上,是装箱。

    把放在堆上的值类型取出,是拆箱。

    int i = 123;

    object obj = i;//Boxing

    int j = (int) i;//Unboxing

    异常处理

    异常是程序运行中出现的,不总是因为代码逻辑有问题,而引起的错误。

    异常会从第一次出现异常的函数中,一层一层往外抛,中间如果不处理,会一直抛到main函数。

    C#中使用try……catch……finally……模式来处理异常

    垃圾回收机制

    C#中自动管理内存的机制。

    C#的垃圾回收是不定时的,一旦某一带的内存满了就回收。

    C#将内存分为3代,0代,1代,2代。0代最小,1代稍大,2代最大。

    垃圾是按代回收的,第0代超预算之后就回收第0代的对象,而存活下来的对象就提升为第1代,依次类推,而往往经过多次0代的垃圾回收才能回收一次第1代,以此类推。

    如果垃圾超过了2代容量,就会报错。

    常用数据类型

    String

    StringBuilder

    List

    Dictionary

    常用文件路径类

    Path

    Directory

    File

    FileStream

    事件

    在事件驱动型程序中,程序运行后系统会一直监听程序的状态。

    当监听到事件后,会执行对应的注册方法。

    非托管资源

    非托管资源是不会自动释放的,需要手动释放。

    例如文件读写完成之后,就需要手动释放。

    var file=new FileStream(@D:1.txt);

    //中间对file写入了很多东西

    //关闭对象,释放非托管资源

    file.Close();

    file.Dispose();

    文件流

    一个txt文件,计算机内部是以一串二进制数字来存储的。

    对于这串二进制数字怎么来的,我们可以这样理解:

    每个字符都有编码,比如a是97,b是98,c是99;

    将十进制的字符编码串,转为二进制的,就是计算机中存储的二进制数字了。

    例如:【abc】----【979899】----【11101111001110111011】

    有了这样一串数字以后,我们把这串数字一个一个的读出来,就像流动一样,就是文件流。

    索引器

    索引器是一个带有参数的属性。

    var a=int[3];

    a[1]=0;//1就是索引器

    在一个类中加入如下代码,就有了一个索引器。

    public int this[int index]

    {

      get{return index;}

    }

    对象的序列化

    对象的序列化可以使用BinaryFormat对象,使用方法如下。

    1.在类名上方添加标记[Serializeable]

    2.使用FileStream

    3.使用序列化对象BinaryFormat

    代码如下:

    using(FileStream stream =new FileStream('1.dat',FileMode.Create,FileAccess.Write))

    {

      BinaryFormatter bf =new BinaryFormatter();

      bf.Serialize(stream,obj1);

    }

    浅拷贝

    Object类中的MemberwiseClone()方法是用来实现浅拷贝的。

    浅拷贝的时候,原对象的值类型成员被复制成两份了,但是引用类型的成员仍然是一份。

    应用程序路径

    WinForm程序中获得应用程序路径比较好的方法是:

    string exePath=Assembly.GetExecutingAssembly().Location;

    静态


    1.静态类继承自Object类,但不能实现任何接口。

    2.静态类不能被继承。

    3.静态与多态是互斥的概念。

    结构与类的区别

    1.结构中可以定义变量,但不可以赋初值。

    2.结构中可以定义方法。

    3.结构的构造函数中,必须为每个字段赋初值。

    设计模式

    设计模式是人在开发程序时创造的特定的代码组织结构,使用它,可以使代码更容易写和修改。

    由一个静态的工厂类,根据需求生产用于某种任务的对象,来执行某种操作,这就是工厂模式。

    工厂模式可以实现资源的按需分配,节省资源。

  • 相关阅读:
    Java注释中的@deprecated与源代码中的@Deprecated
    android KE or NE分析
    Android手机中UID、PID作用及区别
    mtk刷机错误汇总
    区分Integer.getInteger和Integer.valueOf、Integer.parseInt() 的使用方法
    :>/dev/null 2>&1 的作用
    android 小技巧
    转:Eclipse自动补全功能轻松设置
    android开发常用地址
    转:大数据 2016 landscape
  • 原文地址:https://www.cnblogs.com/fabao/p/9223549.html
Copyright © 2011-2022 走看看