-2

次のうちどれを使用する必要があるかを知るにはどうすればよいですか。

public int Dollar { get; set };
public int Dollar { get; private set };
private int Dollar { get; set };
private int Dollar { get; private set };

私がプログラミングをしているとき、私はいつもどれを使うべきか自問自答しています。どちらを使用する必要があるかを知る方法を説明できる人はいますか?

4

6 に答える 6

9
public int Dollar { get; set };

ドルは、アプリケーション全体で取得および設定できます

public int Dollar { get; private set };

ドルはアプリケーション全体で取得できますが、それを含むクラスからのみ設定できます

private int Dollar { get; set };

Dollar を含むクラスのみが Dollar を使用できます

編集

注: public フィールドは、実装方法がわかっている場合、アプリケーションの外部からアクセスすることもできます。Internalアプリケーションのみがプロパティを使用できるようにします

編集2

他の人が指摘しているように、以下はコンパイラエラーです。

private int Dollar { get; private set };

「ConsoleApplication1.Program.Dollar.set」アクセサーのアクセシビリティ修飾子は、プロパティまたはインデクサーよりも制限的でなければなりません

于 2013-06-17T18:15:01.720 に答える
3

クラス外の他のコードがアクセスできるようにする必要がありますDollarか? いいえの場合は、次を使用する必要があります。

private int Dollar { get; set; }     

プロパティがプライベートの場合、セッターをプライベートに設定しても意味がないことに注意してください。また、プロパティがまったく必要かどうか、およびプライベート フィールドの方が適切かどうかについても疑問を抱くかもしれません。

他のコードが読み取りアクセスのみを必要とする場合:

public int Dollar { get; private set; }

他のコードが読み取りと設定の両方を行う必要がある場合Dollar:

public int Dollar { get; set; }

派生クラスがそれにアクセスできるようにする必要がある場合 (ただし、非派生クラスは必要ありません)、次のように置き換えますprivateprotected

于 2013-06-17T18:15:26.867 に答える
2

以下のコメントを参照してください

1) public int Dollar { get; set; }

アプリケーションのどこからでもこのプロパティにアクセスできます。Get と Set の両方を使用できます。

2) public int Dollar { get; private set; }

アプリケーションのどこからでもこのプロパティにアクセスできますが、Get しか利用できません。プロパティ値を設定できません。

3) private int Dollar { get; set; }

これには、クラス内でのみアクセスできます。

4) private int Dollar { get; private set; }

構文エラー。

于 2013-06-17T18:22:21.157 に答える
0

フィールドを公開する必要があるようなドルを使用している場合は、公開します。それ以外の場合、定義されたクラスでのみ Dollar にアクセスする場合は、private を使用します。

私の経験則では、フィールドを公開することを強制する何らかの要求がない限り、すべてを非公開にすることです。

于 2013-06-17T18:15:09.977 に答える
0

内部でのみ使用する場合は、プライベートにします (または、プロパティではなくプライベート変数にします)。

外部から読み取るが、内部でのみ書き込む必要がある場合は、プライベート セッターを使用してパブリックにします。

それ以外の場合は、公開します。

于 2013-06-17T18:15:42.813 に答える