4

重複の可能性:
パブリック、プライベート、保護、およびなしの違いは何ですか?

質問があります:これらのメソッドタイプの違いは何ですか?

Static , Public , Internal , Protected , const , void

申し訳ありませんが、私の質問は専門家には厄介に思えるかもしれませんが、私は本当に違いを理解したいと思います、そしてところで私はそれらについての記事を検索して読んだのですが、それらはすべて大きくてよく説明されていません、私は私が作ることができるようにそれぞれの良い例が必要です私は常にプライベートボイドから始めるので、関数を作成するたびに決定します.......。

4

4 に答える 4

21

基本的な方法は次のとおりです。

[access modifier?] [static?] [return type or void] [name] ([parameters?])

いくつかの余分な部分がありますが、それはあなたの出発点です。

アクセス修飾子

それらのいくつかは、修飾子を付けたものが何であれ、どのクラスがアクセスできるか(呼び出すことができるか)を制御するアクセス修飾子です。

// Anyone can call me
public int SomeMethod() { return 1; } 

// Only classes in the same assembly (project) can call me
internal int SomeMethod() { return 1; } 

// I can only be called from within the same class
private int SomeMethod() { return 1; }

// I can only be called from within the same class, or child classes
protected int SomeMethod() { return 1; }

静的

Staticメソッド/変数がクラスのすべてのインスタンスによって共有されることを意味します。上からのアクセス修飾子と組み合わせることができます。

public class Test
{
  static int a = 0;
  public int SomeMethod() { a = a + 1; return a; }
}

Test t1 = new Test();
t1.SomeMethod(); // a is now 1
Test t2 = new Test();
t2.SomeMethod(); // a is now 2

// If 'a' wasn't static, each Test instance would have its own 'a'

空所

void何も返さないメソッドがあることを意味します。

public void SomeMethod() 
{ 
  /* I don't need to return anything */ 
}

const

const変数を変更できないことを意味します。

const int LIFE = 42;
// You can't go LIFE = 43 now
于 2012-07-30T11:03:34.320 に答える
4

キーワード、、、publicおよび()はprivateアクセス修飾子と呼ばれ、特定のクラスやそのメンバーにアクセスできるユーザーを決定します。これは、カプセル化抽象化に役立ちます。protectedprotectedinternal

ストレージ修飾子(AVDに感謝)staticは、静的メソッド、プロパティ、またはクラスを定義しconst、定数を作成し、void「nothing」の戻り型を示します。

開発中は通常、から始めprivate void DoSomething()ます。外部からメソッドにアクセスできる場合にのみ、アクセシビリティを向上させます。同じ名前空間でオーバーライドされることが予想される場合は、を使用しますprotected。別のアプリケーション(別の名前空間)で使用するライブラリを作成している場合は、そのライブラリにマークを付けますpublic

ある時点で何かを返したい場合はvoid、適切なタイプに変更します。これらはすべて(静的または一定にするタイミングの決定を含む)、ほとんどの基本的なOOの本やチュートリアルで取り上げられているので、1つ選んでみてください。

于 2012-07-30T10:53:58.010 に答える
2

これらは呼ばれますAccess Modifiers

公衆

タイプまたはメンバーには、同じアセンブリまたはそれを参照する別のアセンブリ内の他のコードからアクセスできます。

プライベート

タイプまたはメンバーには、同じクラスまたは構造体のコードでのみアクセスできます。

保護

タイプまたはメンバーには、同じクラスまたは構造体、あるいは派生クラスのコードでのみアクセスできます。

内部

タイプまたはメンバーには、同じアセンブリ内の任意のコードからアクセスできますが、別のアセンブリからはアクセスできません。

保護された内部

タイプまたはメンバーには、同じアセンブリ内の任意のコード、または別のアセンブリ内の任意の派生クラスからアクセスできます。

于 2012-07-30T10:55:22.307 に答える
1

CodeCasterが言ったことに加えて...

voidは、戻り値のタイプが宣言されている場所にあります。Voidは、特定のメソッドに戻り型がないことを意味します。

constは、タイプが定数であり、一度定義されてから変更されないことを示します。

于 2012-07-30T10:56:03.910 に答える