zoukankan      html  css  js  c++  java
  • C#

    一、几个静态方法

        1.获取本机所有服务列表 ,返回System.ServiceProcess.ServiceController的数组。 

    System.ServiceProcess.ServiceController.GetServices()
    

        2.获取执行的当前方法MethodBase对象。可以调用MethodBase对象的DeclaringType获取当前对象的Type

    System.Reflection.MethodBase.GetCurrentMethod()
    

        3.获取一个类型是否带无参公共构造函数 

        type.GetConstructor(new Type[]{}); 返回null则不存在,反之存在。

        4.Interlocked.Increment(ref loaction)

        线程安全的自增方法

        5.System.Threading.ReaderWriterLock

        读写锁的类,多个线程可以同时读,但不能一读一写,也不能同时写

    二、特性

     [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface)]
    

      该特性可以标记给特性类

     public class MyAttribute : Attribute
     {
         public MyAttribute()
         {
         }
     }
    

        标记了之后代表My特性只可以标记给Class和Interface。

    三、Lazy 

      LazyThreadSafetyMode 枚举参数

      LazyThreadSafetyMode.None  线程不安全 当多个线程创建时实例时会报错

      LazyThreadSafetyMode.PublicationOnly  线程不安全 当多个线程创建时不会报错,不推荐使用

      LazyThreadSafetyMode.ExecutionAndPublication 线程安全 当多个线程创建时会加锁

     四、枚举

     判断多位枚举的包含关系 

      

    enum oop
            {
                a = 1,
                b = 2,
                c = 4,
                d = 8,
                e = 16
            }
    oop o = oop.a | oop.b | oop.c;
                
    bool asd= (o & oop.a) != 0;
    

    删除一个枚举值

    o=o & (~oop.a);

    五、Graphics

      测量字符串所占的长宽用TextRenderer.MeasureText()或者Graphics.MeasureString();前者精确度高

    六、implicit 关键字

      public static implicit operator string(CommandBuilder<T> command);

      隐身类型转换

      将CommandBuilder<T>转换成string类型

    七、[ThreadStatic]特性 ,非常实用的技巧。

      

    [ThreadStatic]
            private static Db instance;
            public new static Db Instance
            {
                get
                {
                    if (instance == null)
                    {
                        instance = GetNewInstance(true);
                    }
                    return instance;
                }
            }

    ThreadStatic使每个线程只有一个实例(单例)。

  • 相关阅读:
    kernel structure
    linux cmd fuser/screen
    arm 指令架构
    udev 学习
    grup 2 ubuntu
    tiny6410 3.8.1 内核kgdb调试
    make 选项
    lfs 无知
    数据归一化的两种方法:最值归一化和0均值归一化
    使用随机队列实现生成迷宫
  • 原文地址:https://www.cnblogs.com/slqd/p/5809420.html
Copyright © 2011-2022 走看看