Example #1
0
        public static Multiton GetInstance(MultitonType type)
        {
            // Lazy init (not thread safe as written)
            // Recommend using Double Check Locking if needing thread safety
            if (!instances.TryGetValue(type, out var instance))
            {
                instance = new Multiton(type);

                instances.Add(type, instance);
            }

            return(instance);
        }
Example #2
0
        // Sample usage
        public static void Main()
        {
            Student std1 = new Student();

            std1.StudentName = "Bill";
            Console.WriteLine(std1.StudentName);

            ChangeReferenceType(std1);

            Console.WriteLine(std1.StudentName);
            var m0 = GetInstance(MultitonType.Zero);
            var m1 = Multiton.GetInstance(MultitonType.One);
            var m2 = Multiton.GetInstance(MultitonType.Two);

            Console.WriteLine(m0);
            Console.WriteLine(m1);
            Console.WriteLine(m2);
            A v1 = new A();

            v1.val = 10;
            methodtoshowref(ref v1);
            Console.WriteLine(v1.val);
        }