public
それ自体は、これが外部の呼び出し元(型自体にアクセスできる呼び出し元)がアクセスできるインスタンスベースのメンバーであることを意味します。
static
それ自体は、メンバーがインスタンスベースではないことを意味します。特定のインスタンス(またはインスタンスさえも)を必要とせずに呼び出すことができます。アクセシビリティ修飾子がないと、非公開と見なされます。そのため、外部の呼び出し元はメンバーにアクセスできません。
public static
外部の呼び出し元がアクセスできるstatic
メソッドです。
メモリ使用量はどちらの場合も同じです。メソッドで宣言された変数はすべて、メソッド呼び出し自体にスコープされます(実装の詳細として:スタックを介して;また:「キャプチャされた変数」はなく、async
またはyield
使用法はないと想定しています)、
これには、ASP.NET/MVCに固有のものはありません。ただし、コントローラーの「アクション」メソッドは、IIRCであり、パブリック/インスタンスであることが期待されているため、修飾子があり、public
修飾子がありませんstatic
。
基本的に:
アクセシビリティ:
- 指定なし:デフォルトは「プライベート」(または外部クラスの場合は「内部」)
- 「プライベート」:そのタイプ内のコードでのみ使用可能
- 「保護された」:そのタイプまたはサブタイプ内のコードで使用可能
- 「内部」:同じアセンブリでコーディングできます
- 「保護された内部」:「保護された」または(ユニオン)「内部」のいずれか
- 「公開」:タイプにアクセスできるすべての発信者が利用できます
静的/など:
- 指定なし:インスタンスベース。インスタンスが必要であり、コードはインスタンスメンバー(経由
this.
)およびstatic
メンバーに自動的にアクセスできます
- 「静的」:インスタンスは必要ありません。コードは
static
メンバーにのみ自動アクセスできます