私は最近、C#の構造体にメソッドがあることを発見しました。static structメソッドとstatic classメソッドの違いは何ですか?
間違いなく、静的なクラスの静的メソッドではなく、空の構造体の静的メソッドを使用していることがわかりました。
public struct Foo
{
public static void Bar(Param param)
{
...
}
}
この時点では、実際に構造体として使用されているわけではありません。プロパティーはまったくありません。
これは、クラスの静的メソッド(staticまたはstatic)とはまったく異なりますか?どちらか一方を優先する理由はありますか? (私の腸は、静的構造体のメソッドを使用すると、最低でも、あまり直感的であることを私に伝えます)
クラス 'static'を宣言すると、コンパイラが変数宣言または型変換の型の任意の用途にエラーとしてフラグを付けることができるという利点が追加されました。 –
@mikezまた、インスタンスメンバーの宣言にエラーとしてフラグを立てるだけでなく、 – cdhowie
@mikezもっと重要な違いは、「抽象密封クラス」は単純に無効なC#だということです。 – svick