日期:2014-05-18  浏览次数:20761 次

关于new 一个类的区别
1.

public void main_a(){ class_a a =new class_a(); a.b="1";a.c="2"; }



2  


private class_a a{ get{class_a a = new class_a(); a,b="1";a.c="2"; return a;}}



这两个有啥区别

------解决方案--------------------
C# code
using System;
using System.Threading;
using System.Collections;
using System.Collections.Generic;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            ClassA clsA = new ClassA();
            clsA.main_b();

            Console.ReadKey();
        }
    }

    public class ClassA
    {        
        public static ClassTest a
        {
            get
            {
                ClassTest a = new ClassTest();
                a.b = "1";
                a.c = "2";
                return a;
            }
        }

        public void main_b()
        {
            ClassTest a1 = a;
            Console.WriteLine(String.Format("b={0},c={1}", a1.b, a1.c));
        }
    }

    public class ClassTest
    {
        private String _b;
        private String _c;

        public String b
        {
            get { return _b; }
            set { _b = value; }
        }

        public String c
        {
            get { return _c; }
            set { _c = value; }
        }

        public ClassTest()
        {
            _b = String.Empty;
            _c = String.Empty;
        }
    }
}

------解决方案--------------------
执行方面,第一种比第二种少一层调用堆栈,理论上性能会略微好那么一点点,但是第二种写法可以使类中其他方法也能使用相同的方式构造class_a类,可以提高代码的重用率