各有各的好处。各有各的应用场合。
但是性能方面静态方法绝对比实例方法来得好。可以写一个循环来调用一下看谁比较快?每秒钟能调用多少次?
这个不一定呀...比如你看msdn 里面的directory 和directoryInfo这两个类,前一个类的方法都是静态的,但是msdn文档却说,如果你需要多次调用directory里面的方法,推荐用directoryInfo的实例方法,因为directory静态方法里面需要校验比较多的东西
directory 和directoryInfo,不能用这个来推论。directoryInfo是经过优化的。做人不能太2.
什么是静态什么是实例,如果A静态方法与B实例方法都完成同样的功能,我建议你使用实例方法,实际上静态方法大多时候可以看成具有通用行为的函数,而是实例方法应该被视作具备优化算法的方案,算是一个子集把,这并不能代表实例优胜于静态,实例方法内部条用静态方法很常见,但理论上可以把实例方法视为比静态更优秀,不知道我这样说你明白与否。
这个不好作评论
.Net Framework 提供的静态方法大多数是线程安全的,但实例方法大多数都不保证线程安全。
性能方面,我测试了一下,实例方法略快一点:
测试代码
    class Program
    {
        class A
        {
            public void Test()
            {
            }
        }
        static void Test()
        {
        }
        static void Main(string[] args)
        {
            A a = new A();
            CodeTimer.Time("Test static methed", 100000000, delegate() { Test(); });
            CodeTimer.Time("Test instance methed", 100000000, delegate() { a.Test();  });
            Console.ReadLine();
        }
    }
其中
CodeTimer 类见 http://www.cnblogs.com/eaglet/archive/2009/03/10/1407791.html
测试结果:
Test static methed
        Time Elapsed:           1,778ms
        Time Elapsed (one time):0ms
        CPU time:               1,781,250,000ns
        CPU time (one time):    17ns
        Gen 0:                  0
        Gen 1:                  0
        Gen 2:                  0
Test instance methed
        Time Elapsed:           1,626ms
        Time Elapsed (one time):0ms
        CPU time:               1,625,000,000ns
        CPU time (one time):    16ns
        Gen 0:                  0
        Gen 1:                  0
        Gen 2:                  0