有没有理由不在C#中使用静态修饰符?

时间:2015-08-15 21:31:57

标签: c# static

我是C#编程的新手,我还在学习。我想知道在创建方法时是否有任何特殊原因不使用static修饰符,对我来说它看起来更简单。我试着查看MSDN,但如果我不知道这些词的一半是什么意思,那就没什么用了。

例如:

using System;

namespace StaticModifier
{
    class Program
    {
        static void Main(string[] args)
        {
            SayHi();
        }

        static void SayHi()
        {
            Console.WriteLine("Hi");
        }
    }
}

似乎比这简单得多:

using System;

namespace StaticModifier
{
    class Program
    {
        static void Main(string[] args)
        {
            Program p = new Program();
            p.SayHi();
        }

        void SayHi()
        {
            Console.WriteLine("Hi");
        }
    }
}

那么有人愿意解释吗?请记住,我很新,所以请保持简单:)

1 个答案:

答案 0 :(得分:0)

如果您的类需要多于1个自身的实例,则不会使用static修饰符。例如,如果您有一个名为car的类,其中包含static关键字,那么您只能通过该类的静态引用访问该类的成员。所以你永远不会有2个汽车对象的实例。

这取决于您的程序尝试做什么可能是合适的。但是,如果您有类名玩家分数,则可能会使用static关键字。因为这只会存在一次,除非你拥有更多的那个玩家,否则你需要1个玩家得分实例。这意味着您可以考虑singleton实例,也可以只使用静态类。

有很多原因可能会导致或不会使用静态修饰符。但是对某些人来说,使用它是不可能的,取决于你正在创建的应用程序的具体情况。