小编Way*_*pps的帖子

线程安全C#单例模式

我对这里记录的单例模式有一些疑问:http: //msdn.microsoft.com/en-us/library/ff650316.aspx

以下代码是文章的摘录:

using System;

public sealed class Singleton
{
   private static volatile Singleton instance;
   private static object syncRoot = new object();

   private Singleton() {}

   public static Singleton Instance
   {
      get 
      {
         if (instance == null) 
         {
            lock (syncRoot) 
            {
               if (instance == null) 
                  instance = new Singleton();
            }
         }

         return instance;
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

具体来说,在上面的例子中,是否需要在锁之前和之后将实例与null进行两次比较?这有必要吗?为什么不先执行锁定并进行比较?

简化以下是否有问题?

   public static Singleton Instance
   {
      get 
      {
        lock (syncRoot) 
        {
           if (instance == null) 
              instance = new Singleton();
        }

         return instance; …
Run Code Online (Sandbox Code Playgroud)

c# singleton design-patterns

74
推荐指数
5
解决办法
11万
查看次数

绘图控件与透明背景

我一直在尝试显示一个透明边框作为控件背景的图像.

不幸的是,透明区域在父窗体中创建了一个洞,如下所示:

在上面的图像中,表格有一个红色背景,我希望在透明区域中看到我的控制.

我使用的代码如下:

    protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
    {
        if (this.Image != null)
        {
            Graphics g = Graphics.FromImage(this.Image);

            ImageAttributes attr = new ImageAttributes();

            //set the transparency based on the top left pixel
            attr.SetColorKey((this.Image as Bitmap).GetPixel(0, 0), (this.Image as Bitmap).GetPixel(0, 0));

            //draw the image using the image attributes.
            Rectangle dstRect = new Rectangle(0, 0, this.Image.Width, this.Image.Height);

            e.Graphics.DrawImage(this.Image, dstRect, 0, 0, this.Image.Width, this.Image.Height,
                GraphicsUnit.Pixel, attr);
        }
        else
        {
            base.OnPaint(e);
        }
    }

    protected override void OnPaintBackground(System.Windows.Forms.PaintEventArgs e)
    {
        //base.OnPaintBackground(e);
    }
Run Code Online (Sandbox Code Playgroud)

这个类继承自PictureBox,因为我需要一个实现OnMouseMove和OnMouseUp Events的控件. …

compact-framework .net-cf-3.5

7
推荐指数
1
解决办法
2263
查看次数

将play-services-auth从15.0.0升级到16.0.1时出现奇怪的错误

对于我的android项目,我将play-services-auth库版本从15.0.0升级到16.0.1

从那时起,我在构建过程中看到以下错误,它还会生成 ajcore文件

我删除了.gradle缓存并完成了构建,仍然看到此错误。

其他人以前看过这个,我该如何解决?

java.lang.IllegalStateException:预期为。,<或;,但是在解压缩Lcom / google / android / gms / common / api / internal / BaseImplementation $ ApiMethodImpl时发现了authapi;org.aspectj.util.GenericSignatureParser.parseClassTypeSignature(GenericSignatureParser.java:204)org.aspectj.util.GenericSignatureParser.parseFieldTypeSignature(GenericSignatureParser.java:155)org.aspectj.util.GenericSignatureParser.parseTypeArgument(GenericSignatureParser.java:204) )

android-gradle-plugin firebase-authentication

5
推荐指数
1
解决办法
257
查看次数