小编yel*_*bus的帖子

在C#中使用结构的单身人士

这不是一个优化问题或任何事情.这本质上是一个什么样的问题.单例模式用于具有多次使用的对象的单个实例.这一切都很好,但是如果我尝试用结构做类似的模式,它就不会得到单个实例.

我试图用Color结构做一些事情System.Drawing.这是一些示例代码:

    class Colors
    {
        private static Color _red;
        public static Color Red
        {
            get
            {
                if (_red.IsEmpty)
                    _red = Color.FromArgb(0xFF, 0xFF, 0x42, 0x39);

                return _red;
            }
        }
    }

    static void Main(string[] args)
    {
        var redOne = Colors.Red;
        var redTwo = Colors.Red;

        Console.WriteLine("redOne.Equals(redTwo) : {0}", redOne.Equals(redTwo));
        Console.WriteLine("redOne == redTwo : {0}", redOne == redTwo);
        Console.WriteLine("Object.Equals(redOne, redTwo) : {0}", Object.Equals(redOne, redTwo));
        Console.WriteLine("Object.ReferenceEquals(redOne, redTwo) : {0}", Object.ReferenceEquals(redOne, redTwo));
        Console.ReadLine();
    }
Run Code Online (Sandbox Code Playgroud)

这个输出是:

redOne.Equals(redTwo) : True
redone == redTwo : …
Run Code Online (Sandbox Code Playgroud)

.net c# autoboxing struct

3
推荐指数
2
解决办法
1175
查看次数

标签 统计

.net ×1

autoboxing ×1

c# ×1

struct ×1