2

そのようなクラスを定義しました:

class Data
{
    internal string f_source;
    internal string f_output;
    internal string password;
}

ご覧のとおり、各メンバーのアクセス修飾子を明示的に定義しています。

クラス内のすべてのメンバーのデフォルトのアクセス修飾子を一度に定義する方法はありますか?

もしかしたら、そのような夢を叶える属性があるのか​​もしれません…わかりません…

クラス宣言の前にアクセス修飾子を使用しようとしました:

internal class Data
{
    string f_source;
    string f_output;
    string password;
}

しかし、成功しません!

「そのような問題を解決するにはどうすればよいですか?」という提案はありますか?

4

2 に答える 2

3

2 番目の定義型により、そのクラスだけが同じアセンブリ内でのみクラスにアクセスできるようになります。すべてのクラス メンバーをすべてのメンバーの内部として作成する方法はありません。

これを確認してください: msdn internal definition&example

幸運を!

于 2013-02-11T12:11:29.330 に答える
3

設計上、あなたが求めていることは C# では不可能です。

C# の仕様では、何も指定されていない場合に使用するアクセス修飾子が指定されています。デフォルトは、正当な最も制限されたアクセス修飾子です。名前空間に直接ある型 (つまり、ネストされた型ではない) は internal ですが、特に指定がない限り、メンバーは private です。

これは、C++ のアクセス修飾子がどのように機能するかについての経験に部分的に基づいた設計上の決定であると確信しています。一連のバグは、ファイルの特定のセクションが宣言されていることなどから発生する可能性がありますprivatepublicそれを述べる必要がある方がはるかに表現力豊かです (または、指定されていない場合は可能な限り制限されていることを知っておいてください)。内部 (*) 実装の詳細を可能な限り保持し、本当に公開する必要があるものだけを公開することで、デフォルトとして制限を維持することが適切です。

(*) 修飾子ではありません

于 2013-02-11T12:19:09.200 に答える