C#では、public、private、protected、access modifierを持たない、の違いは何ですか?

私は大学時代にずっとpublicを使ってきましたが、publicprivateprotectedの違いを知りたいのですが。

また、staticは何も持っていないのとは対照的に何をするのですか?

うーん。

ここを見てください。 アクセス修飾子をご覧ください。

一言で言えば

Publicは、メソッドや型を他の型やクラスから完全に可視化します。

Privateでは、privateメソッド/変数を含む型だけが、そのprivateメソッド/変数にアクセスできます(入れ子になったクラスも、そのクラスのprivateメソッド/変数にアクセスできることに注意してください)。

Protected は private と似ていますが、派生クラスも protected メソッドにアクセスできます。

"Nothing" は VB.NET の null に相当します。ただし、「何もない」が「アクセス修飾子がない」ことを意味しているのであれば、それによりますが、非常に大まかな経験則(C#の場合)では、アクセス修飾子を明示的に指定しない場合、メソッド/変数の宣言は通常、可能な限り*制限されています。 つまり、以下のようになります。

public class MyClass
{
    string s = "";
}

は事実上、同じです。

public class MyClass
{
    private string s = "";
}

アクセス修飾子が明示的に指定されていない場合は、リンク先のMSDNの記事に完全な説明があります。

解説 (0)

うーん・・・。

スタティックとは、そのクラスのインスタンスを持っていなくても、その関数にアクセスできるということです。

クラス定義から直接アクセスできます。

解説 (0)

これらのアクセス修飾子は、メンバーが表示される場所を指定します。これを読んでみるといいでしょう。IainMHのリンクを参考にしてみてください。

静的メンバーはクラスごとに1つで、インスタンスごとに1つではありません。

解説 (0)