zoukankan      html  css  js  c++  java
  • 私人C#笔记

     
    coust 定义常量
    string是密封类,所以不能继承它
    namespace默认是按照文件夹的结构命名的,如(System.文件夹.子文件夹),而且namespace是可以手动改的
     
    ArrayLists可以放进去所有类型的变量,可以把它看作动态数组
    add
    remove,removeAt
    clear
    list.Contains();     判断元素是否存在
     
    List<T>
    HashSet<T>     只保留一份重复的数据
    Dictionary<T,T>
     
    Stopwatch类是秒表
    Random     随机数
    Path          路径处理
         Combine(第一部分,第二部分)     //合并路径,自动处理路径的斜杠
    File
         File.WriteAllText(路径,内容)//写入文件,如果文件不存在则创建,如果文件夹不存在则抛出异常
    Directory
    StringBuilder
         Append(),AppendLine()
     
    可空类型
    在值类型名后加上个问号(?)可以声明可空类型的变量
    int? i=null;
    i.HasValue()     判断是否为null
     
    FTP,HTTP处理
    WebClient
    FtpWebRequest
    时间间隔
     TimeSpan
    声音处理
    SoundPlayer
    委托中的匿名方法
    delegate()
    {
         //匿名方法
    }
    Lambda表达式
    TestDelegate td = (s1,s2) => {
         Console.WriteLine(s1+s2);
    }
    扩展方法
    扩展静态类的方法,使字面量可以直接调用类似String类的ToLower(),ToUpper()方法
    如:str.IsEmail()
    无参扩展方法:自己写个静态类,在方法的第1个参数前加上this关键字
    有参的扩展方法,第一个参数就是要调用的对象,以后的参数依次是扩展方法的参数
    Linq
    类型推断
     var关键字声明变量,但和JS中不同,JS是弱类型的语言,可以为变量赋任何类型的值,
    C#中一旦为变量赋了一种类型的值,就不能为其赋其余类型的值
    匿名类型
    var p = new { Name="Sky",Age=18 };
    p是匿名类型的对象
    LINQ的简便方法
    from i in values
    where i<0
    orderby i descending 
    select i;//select在最后
    //select new Person{Age=10;}     可以创建对象
     
    GC.Collect();     //手动垃圾回收
     
    WeakReference 弱引用,监视一个变量是否被回收
     
    string 和 StringBulder的区别
    StringBuilder不会产生大量的临时字符串
     
    "abc"=="123"     //判断值
    object.RefernceEquals(s1,s2)     //判断对象的引用是否相同
     
    字符串拘留池,会重用字符串对象,
    但每次new出一个字符串,就肯定是创建了一个新的对象
     
    C#中使用指针
    在项目的属性中选中"允许不安全的代码",并且在方法前要加上"unsefe"关键字才可以使用指针
     
    运算符重载
    public bool operator ==(Person p1,Person p2)
     
    结构体是值类型
     
    浅度复制和深度复制
     
    ICloneable接口提供一个Clone()方法可以进行深度复制,但实现代码需要自己完成
    new一个对象把各个属性都挨个复制
     
    可以使用对象的MemberwiseClone()方法来进行浅度复制,
    它返回一个Object对象,需要自己转换成所需 的类型
     
    数字与字符串相加,以数字开头,就返回与第一个数字相连的和再与余下的字符串相加
    ,以字符串头,就以数字的ToString()相加
     
    字符串与一个非字符串对象相加,得到的是它的ToString*(
     
    sealed 作为类的修饰符是密封类,作为方法的修饰符,不允许子类override
     
    Stream
    File,FileInfo,Directory,DirectoryInfo
    FileStream,GZipStream
    StreamReader,StreamWriter
     
    泛型委托,系统定义的委托Func<T>
     
    泛型约束
    //构造函数约束
    function<T>() where T:new() //约束T必须有无参的构造函数
    //继承约束
    function<T>() where T:Base
    default(T)     返回这个类型的默认值,如果是值类型就返回null
     
    程序集
    反射Assembly类
     
    Type类是对类的更高级的抽象,所有类都是它的实例
    //没有对象的时候通过类来获得类的描述
    Type t=typeof(Person)
    //GetType()获得对象的类的类型描述
    asbls[0]
    Type t2=dog.GetType();
     
    Activator.CreateInstance(type);     //创建type类的实例,要求必须有无参的构造函数
     
    typeof(Class) 返回Class的Type描述
     
     
     
    类的标记(Attribute)
    [Serialize]     标记类为可序列化
    [DisplayName("显示的类名")]
     
     
     
  • 相关阅读:
    【转】C#中判断扫描枪输入与键盘输入
    根据名称分组,选择最大日期和最小日期的数据,并显示在一行上
    C#如何判断我的程序已经有一个实例正在运行
    消息队列篇
    Redis面试笔记(二)雪崩、穿透、击穿三连问
    MySQL基础
    Redis面试笔记(一)
    Java多线程(二)
    Java多线程(一)
    Elastic Search之布尔查询
  • 原文地址:https://www.cnblogs.com/xinhuan/p/4914912.html
Copyright © 2011-2022 走看看