例如,我有以下两个类:
第一
public class Example
{
public Example()
{
}
public int ReturnSomething
{
return 1;
}
}第二
public class Example
{
public Example()
{
}
public static int ReturnSomething
{
return 1;
}
}我想使用ReturnSomething方法,这两个类中哪一个分配的内存更少/更多?当我用
int x = Example.ReturnSomething;或者当我用
Example object = new Example();
int x = object.ReturnSomething();发布于 2013-05-29 05:00:00
如果没有在方法中使用对象(即没有this.),那么将其变为静态的。例如,在.NET框架中,为了符合代码分析,在这种情况下必须使用静态(参见规则态1822:将成员标记为静态)。
此外,考虑OOP,以便您的代码是可读的。该方法是对象实例的固有方法吗?它是否更适合于类,而不适用于实例?这里的方法首先合适吗?
注意:你应该为人类编写代码,而不是计算机。除非您在嵌入式硬件上工作,否则编写代码时要考虑可读性,而不是内存消耗。如果您所处的情况是内存的每一个字节都很重要,那么请对应用程序进行分析,以确定解决该问题的多种方法中哪一种符合与内存消耗相关的非功能需求。
发布于 2013-05-29 05:42:01
MainMa为您的未说问题提供了一个很好的答案 (“我应该选择哪个选项”),但是,为了完整起见,我想我应该回答您的明确问题:
我想使用ReturnSomething方法,这两个类中哪一个分配的内存更少/更多?
您的第二个选项分配的内存稍微多一点。但是,12个字节,4运行一个.NET应用程序为准确地说,如果您正在使用x86。将根据需要收集您的对象(除非您积极地做一些事情来防止这种情况),所以这在长期运行中变得不相关了(即使是在内存非常受限的设备上)。
除非你有很好的理由,否则这个小小的数目不应该影响你的决定。有很好的理由选择静态选项,但这不是其中之一。
https://softwareengineering.stackexchange.com/questions/199735
复制相似问题