实例化一个类以调用方法还是使用静态方法?

8
假设我有一个类:
public class product
{
    public string GetName()
    {
        return "product";
    }

    public static string GetStaticName()
    {
        return "product";
    }
 }

这些方法实现了相同的功能,但一个是静态的,另一个不是。
当我调用这些方法时,我采取以下步骤:
product p = new product();
string _ProductName = p.GetName();

and

string _ProductName = product.GetStaticName();

哪种方法最适合用于性能等方面?

5
不要过分关注性能,相反集中精力于语义的正确性。选择在你的模型中最有意义的选项并使用它。 - James Thorpe
1
你应该遵循.NET的命名和大小写约定。所以例如,不是class product而是class Product - Tim Schmelter
@TimSchmelter 谢谢。 - Marcus Höglund
1个回答

7
哪种方法在性能等方面最好使用?
这里不需要考虑任何性能问题,你只需要决定这个方法是否应该对你创建的所有对象实例相同。如果答案是肯定的,那么它应该是一个静态方法。否则,它应该是一个实例方法。这是一个设计决策,而不是性能决策。
顺便说一句,根据你的代码。我认为在这种情况下,你甚至不需要考虑这个问题。你只想得到产品的名称,并可能设置它。也就是说,以下是你唯一需要的内容。
public class Product
{
    public string Name { get; set; }
}

但是,按照我的示例调用它们的方式在性能上有区别吗?如果有,哪一个更好? - Marcus Höglund
Marcus,设计的正确性在这里比任何可能的性能差异都更重要。如果你的代码运行缓慢,你需要对其进行分析并找出原因。这不会是因为你使用或未使用静态方法的原因。 - Polyfun
@MarcusH 不用谢!我很高兴能帮到你。 - Christos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接