13

次のような新しいオブジェクトを作成する場合、デフォルトでどのアクセス修飾子が設定されますか?

Object objectA = new Object();
4

8 に答える 8

33

どのメンバーも、常に最も制限の厳しいメンバーを利用できます。したがって、この場合のアクセシビリティobjectAprivate. (インスタンス変数であると仮定します。ローカル変数にはアクセス規則がないため、意味がありません。)

したがって、この:

class Foo
{
    Object objectA = new Object();
}

これと同等です:

internal class Foo
{
    private Object objectA = new Object();
}

「デフォルトで最もプライベート」とは、型のアクセシビリティがコンテキストに依存することを意味します。これ:

class Outer
{
    class Nested
    {
    }
}

これと同等です:

internal class Outer
{
    private class Nested
    {
    }
}

...ネストされていないプライベートクラスを持つことはできないためです。

明示的なアクセス修飾子を追加すると、それがない場合よりもプライベートなものを作成できる場所が1 つだけあり、それはプロパティ宣言にあります。

public string Name { get; set; } // Both public

public string Name { get; private set; } // public get, private set
于 2010-09-09T10:07:04.000 に答える
3
void Foo()
{
    // private in method scope
    Object objectA = new Object();
}

class Bar()
{
    // private in class scrope
    Object objectA = new Object();
}
于 2010-09-09T10:06:55.880 に答える
3

デフォルトではプライベートです。

َََََ

于 2010-09-09T10:07:23.640 に答える
2

クラスのメンバーとして: private.

メソッドの本体内で宣言されたローカル変数である場合、そのメソッドの外部ではアクセスできません。しかし、あなたはすでにそれを知っていたと思います。

于 2010-09-09T10:06:43.907 に答える
2

ネストされたクラスと構造体を含む、クラス メンバーと構造体メンバーの場合、private が既定です。

クラスと構造体の場合 - internal がデフォルトです

詳細については、 MSDNを参照してください。

于 2010-09-09T10:08:13.793 に答える
0

クラス/タイプ自体はデフォルトで「内部」になります。作成するオブジェクトは、デフォルトで「プライベート」になります。

于 2010-09-09T10:07:31.113 に答える
0

クラスと構造体はデフォルトで internal として宣言されています!

詳細はこちら

于 2010-09-09T10:07:41.067 に答える
0

class のアクセス指定子は internal です。

変数のアクセス指定子は非公開です。

于 2014-08-16T19:16:07.410 に答える