在这段代码中,静态函数和非静态函数之间是否存在差异?
而且,除了静态函数属于对象而不属于实例之外,还有更多差异吗?
public class ClassName
{
public void f1(SomeObject n)
{
n.someProperty = 1;
}
public static void f1(ref SomeObject n)
{
n.someProperty = 1;
}
}
Run Code Online (Sandbox Code Playgroud)
重复?是的,所以看来.请注意,在另一个问题中,没有答案可以解决问题本身.
除了你已经提到的那些:不,没有区别.事实上,不会真正影响(或需要知道相同对象的实例状态)的函数应该是首选的静态函数(至少会减少对象的每个实例的内存占用量) .
现在我想到了它,我认为它不会真正影响内存占用.那么看起来更好看,"设计明智"
只是添加,如果一个方法(如上所述)不需要对象的实例,"设计明智",它应该更好作为静态.如果有的话,因为你不必实例化一个对象来使用它.