• 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使每个线程只有一个实例(单例)。

  • 相关阅读:
    Java ee第七周作业
    Java ee第六周作业
    Java ee第五周作业
    Java ee第四周作业
    Java ee第三周作业
    第二周作业-web后台应用开发与xml
    Java ee第一周的作业
    在团队项目中我对自己的总结
    两人合作,黄金点游戏
    c语言实现wc功能
  • 原文地址:https://www.cnblogs.com/slqd/p/5809420.html
Copyright © 2020-2023  润新知