問題タブ [access-modifiers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2789 参照

c# - ADO.NETEntityFrameworkを使用した内部クラス

データアクセス層の作成にEntityFrameworkを使用しており、すべてのクラスをにしたいと考えていますinternal

クラスごとにデザイナで手動で割り当てることができることを私は知っています。

更新 私は私の最初のステートメントが

ただし、すべてのクラスの単一のプロパティごとに内部修飾子を設定する必要があるようです。私は約30以上のエンティティを持っており、それを行うのは大変な作業になります。

正しくありませんでした。Entity Typeアクセスをオンに設定するときに、適切なアクセスも設定する必要があることを見逃していEntity Setました。

モデル全体に​​「デフォルトアクセス」を設定する方法を知っていますか?

0 投票する
9 に答える
273038 参照

c# - C#のデフォルトのアクセス修飾子は何ですか?

クラス、メソッド、メンバー、コンストラクター、デリゲート、およびインターフェイスのデフォルトのアクセス修飾子は何ですか?

0 投票する
1 に答える
219 参照

c# - アクセス修飾子-ビジネスオブジェクトのプロパティ-取得と設定

DataAccessレイヤーにLINQtoSQLを使用しています。データアクセス層にあるものと同様のビジネスオブジェクトがあります。

データプロバイダーにメッセージ#23が表示されます。メッセージのインスタンス化時に、メッセージコンストラクターで、MessageTypeを取得し、MessageTypeクラスの新しいインスタンスを作成し、データベースからMessageType情報を入力します。

したがって; これでメッセージのMessageTypeの名前を取得したいと思います。

また、管理者にMessageTypeを設定してもらいたい

しかし、私はユーザーがMessageType.Nameを公に設定することを望んでいません。しかし、新しいMessageTypeインスタンスを作成すると、外部クラス(データアクセス層)から設定するため、Nameプロパティのアクセス修飾子はパブリックになります。

これをプロパティからinternalに変更して、クラスがパブリック変数のようにアクセスできるようにし、他のアプリケーションがアクセスして変更できないようにすることができます。

公共の財産のように見えるので、これはまだ正しく感じられません。この状況でのパブリックアクセス修飾子は悪いですか?ヒントや提案をいただければ幸いです。

ありがとう。

0 投票する
5 に答える
16273 参照

c# - 内部クラスのパブリックおよび内部メンバー?

わかりました、これは少しばかげた質問かもしれません。確かに明白な答えがありますが、ここで微妙な点を見逃していないかどうか興味がありました.

クラスで宣言されたメンバーとクラスでpublic宣言されたメンバーの間に可視性/使いやすさの点で違いはありますか?internalinternalinternal

すなわち間

publicメソッドをおよびとして宣言し、virtualである派生クラスでオーバーライドした場合、publicこの修飾子を使用する理由は明らかです。しかし、これは唯一の状況ですか...他に何か不足していますか?

0 投票する
2 に答える
3446 参照

c++ - エラー:'void Base :: output()'はこのコンテキスト内で保護されています

次のコードによって生成されるエラーについて混乱しています。Derived :: doStuffでは、Base::outputを呼び出すことで直接アクセスできます。

output()呼び出すことができるのと同じコンテキストでへのポインタを作成できないのはなぜoutput()ですか?

(特定のコンテキストで名前を使用できるかどうかは、保護されている/プライベートで管理されていると思いましたが、明らかにそれは不完全ですか?)

正しい解決策のcallback(this, &Derived::output);代わりに書くことの私の修正はありますか?callback(this, Base::output)

編集:これがスターダードのどこにあるのか知りたいのですが、ほとんどの場合、私はコンセプトに頭を悩ませようとしています。私の問題は、callbackの保護されたメンバーにアクセスできないことだと思いますが、ポインタを渡すとDerived呼び出すことができます。の保護されたメンバーはDerived::output、の保護されたメンバーとどのようにDerived異なりDerivedますか?DerivedBase

0 投票する
1 に答える
53 参照

inheritance - Why i can not acces the protected properties in my web application

i have a web application which has a Base class in which i define all the properties common to the web pages. The base class extends System.Web.UI.Page

Furthermore i have a Base User control class where are defined all the properties common to the user controls. the Base User Control extends System.Web.UI.UserControl

all the properties in both base classes are protected.

All the web pages extends the base class .

All the controls extends the base user control class.

The problem is i can not access the properties defined in the base class from the user

controls and I can not extend two classes in the base user controls

The question is

how can i access the properties defined in the Base class from within the user controls?

I hope i have been clear

Thanks

0 投票する
2 に答える
1903 参照

java - How do Java public/private and static modifiers affect multiple variables declared on one line?

Are the following equivalent?

And if so, do they still have the same modifiers with different values?

0 投票する
3 に答える
1252 参照

java - Java 設計に関する質問 - クラス、関数、アクセス修飾子

私はJavaの初心者です。いくつかの設計上の質問があります。

次のことを行うクローラー アプリケーションがあるとします。 1. URL をクロールしてそのコンテンツを取得する 2. コンテンツを解析する 3. コンテンツを表示する

  1. 関数を実装するか、クラスを実装するかをどのように決定しますか? -- パーサーはクローラー クラスの関数にする必要がありますか、それとも他のアプリケーションでも使用できるようにそれ自体をクラスにする必要がありますか? -- クラスである場合、保護されたクラスまたはパブリック クラスである必要がありますか?

  2. public クラスと protected クラスのどちらを実装するかをどのように決定しますか? -- たとえば、解析されたコンテンツから統計情報を生成するクラスを作成する必要がある場合、そのクラスを保護する必要があるか (クローラー クラスのみがアクセスできるようにするか)、またはパブリックにする必要がありますか?

ありがとうロン

0 投票する
4 に答える
2325 参照

c# - 宣言で具体的な実装の代わりにインターフェイスの使用を強制する (.NET)

C++ では、次のことができます。

はメソッドをderived_classオーバーライドしてにします。その結果、このメソッドを呼び出す唯一の方法は次のようになります。do_something()private

オブジェクトを type として宣言するderived_classと、プライベートであるためメソッドを呼び出すことはできません。

インターフェイスとして使用される抽象クラスを作成すると、フィールドを具象型として誤って宣言する人が誰もいないことを確認できますが、常にインターフェイス クラスを使用するため、これは非常に優れていると思います。

publicC# / .NET では一般的に、メソッドをオーバーライドするときに からへのアクセスを狭めることはできないprivateため、ここで同様の効果を達成する方法はありますか?

0 投票する
4 に答える
3906 参照

java - パッケージプライベートメソッドにアクセスする外部クラス

パッケージにクラスがあり、org.jakeデフォルトのアクセス権(修飾子なし)を持つメソッドがあるとします。その場合、メソッドはパッケージ内にのみ表示されます。

しかし、誰かが私のフレームワークのjarを受け取ったとき、彼らが新しいクラスを作成し、そのパッケージをとして宣言し、org.jake私の​​おそらく見えないメソッドを使用するのを防ぐにはどうすればよいですか?

言い換えれば、これを防ぐために私ができることはありますか?