インスタンス化されたクラス内でメソッドを使用するのではなく、メソッドを静的に定義して使用する場合、メモリまたはパフォーマンスに違いはありますか? メソッドが静的でない場合、メソッド自体はクラスの各インスタンスでメモリを占有しますか?
おそらく、静的メソッドで宣言された変数はスレッドセーフではありませんか?
/// <summary>
/// A class using instance methods (non-static)
/// </summary>
public class Junk
{
public int x {get; protected set;}
public Junk(int x = 0)
{
this.x = x;
}
public void Increment()
{
this.x++;
}
}
対
/// <summary>
/// A class using static methods
/// </summary>
public class Junk
{
public int x {get; protected set;}
public Junk(int x = 0)
{
this.x = x;
}
public static void Increment(Junk thisJunk)
{
thisJunk.x++;
}
}