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

    1,Using

      

    using (var ws = new WebSocket ("ws://dragonsnest.far/Laputa")) {
            ws.OnMessage += (sender, e) =>
                Console.WriteLine ("Laputa says: " + e.Data);
    
            ws.Connect ();
            ws.Send ("BALUS");
            Console.ReadKey (true);
          }

      定义范围,范围结束时调用这个类的dispose释放资源。

      释放资源有三种方法,dispose,close和析构方法,析构方法由垃圾回收机制自动调用。

    2,Get Set

      作用1:设置访问权限,验证条件

      作用2:提供一层封装,响应属性变化事件,改变一个值调用什么方法,例如UI中的一个事件。

    3,params

      params主要的用处是在给函数传参数的时候用,就是当函数的参数不固定的时候。 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。

      如果函数有多个参数,params参数要放在最后,参数数组必须是一维数组,不能和ref,out一起使用,实参可以是一个数组也可以是几个变量,如果是数组就是引用传递,几个变量就是值传递。

     4,partial

      局部类型,允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。

      类特别大或者需要多人合作时使用,

    5,扩展方法

      扩展方法的类必须是一个静态类,

      public static ToInt(this string s)

      {

        return xxx;

      }

      S.ToInt();

    6,泛型

      类型安全,效率高,没有装箱拆箱操作或强制转换,

    public class Node<T, V> where T : Stack, IComparable

            where V: Stack

        {...}  

    使用where对类型T进行约束,可以继承一个类多个接口

    如果需要在类中对T实例化,需要用到new

    public class Node<T, V> where T : Stack, new()

            where V: IComparable

    new只能是无参数的,所以对应的stack类型必须有一个无参数的构造函数。、

    public class Node<T, V>

        {

            public T add(T a, V b)          //第一个add

            {

                return a;

            }

            public T add(V a, T b)          //第二个add

            {

                return b;

            }

            public int add(int a, int b)    //第三个add

            {

                return a + b;

            }

    }

    泛型类的重载,如果调用add(1,1),不会编译错误,如果删除第三个方法就会报错,编译器不知道该选择哪个方法。

    7,string.format

    8,readonly 和 const

      readonly可以在构造函数中赋值,而const必须要声明时初始化.readonly是运行时常量,const是编译常量。

       `readonly` 字段可以在声明或构造函数中初始化。 因此,根据所使用的构造函数,`readonly` 字段可能具有不同的值。 另外,虽然 `const` 字段是编译时常量,但 `readonly` 字段可用于运行时常量,如下面的示例所示:

      public static readonly uint timeStamp = (uint)DateTime.Now.Ticks;

      

  • 相关阅读:
    Linux虚拟机突然网络不能用了但是主机能ping㣈
    010商城项目:商品类目的选择——Dao,Service.Action层的分析
    009商城项目:商品类目的选择——1前端页面分析
    《深入理解Java内存模型》读书总结
    java多线程系类:JUC线程池:06之Callable和Future(转)
    Spring中,关于IOC和AOP的那些事
    程序员面试,为什么不要大谈高并发?
    Java 面试宝典!并发编程 71 道题及答案全送上!
    面试必问的并发编程知识点,你知道多少?
    程序员必知的七种并发编程模型
  • 原文地址:https://www.cnblogs.com/litmin/p/7233298.html
Copyright © 2011-2022 走看看