gpt4 book ai didi

c# - 单例 - 我可以创建多个实例

转载 作者:行者123 更新时间:2023-11-30 19:02:25 26 4
gpt4 key购买 nike

我认为单例的意义在于我一次只能初始化一个实例?如果这是正确的,那么我的 C# 控制台应用程序代码中一定有错误(见下文)。

如果我对单例的理解是正确的,或者我的代码中是否有错误,请告诉我。

using System;
using System.Collections.Generic;
using System.Text;

namespace TestSingleton
{
class Program
{
static void Main(string[] args)
{
Singleton t = Singleton.Instance;
t.MyProperty = "Hi";

Singleton t2 = Singleton.Instance;
t2.MyProperty = "Hello";

if (t.MyProperty != "")
Console.WriteLine("No");

if (t2.MyProperty != "")
Console.WriteLine("No 2");

Console.ReadKey();
}
}

public sealed class Singleton
{
private static readonly Singleton instance = new Singleton();

public string MyProperty { get; set; }

private Singleton()
{}

static Singleton()
{ }

public static Singleton Instance { get { return instance; } }
}
}

最佳答案

事实上你在这里只有一个实例。你得到 2 个指针

Singleton t = Singleton.Instance; //FIRST POINTER
t.MyProperty = "Hi";

Singleton t2 = Singleton.Instance; //SECOND POINTER
t2.MyProperty = "Hello";

但它们都指向相同内存位置。

关于c# - 单例 - 我可以创建多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12581653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com