問題タブ [private-members]

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 投票する
1 に答える
1274 参照

c# - カスタム属性-プライベートメンバーのみの属性使用法を設定します

カスタム属性を作成し、AttributeUsage(または属性クラスの他の属性を)設定して、自分の属性をプライベートメソッドでのみ使用できるようにしたいのですが、それは可能ですか?

回答ありがとうございます!

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

c# - プライベート フィールドの命名規則

まず、この質問が以前に何度か聞かれたことは知っていますが、最終的にはほとんどが個人的な好みの問題ですが、この件に関するすべてのスレッドを読むと、いくつかのことが明確ではありません.

基本的に、ほとんどの人が少なくとも同意することは、パブリック メンバーは PascalCased にする必要があり、プライベート メンバーは LowerCamelCased にする必要があるということです。

通常、プライベート メンバーの前にアンダースコアを付けるかどうかは、議論の余地があります。プレフィックスは、いくつかの StyleCop ルールに違反しています (ただし、明らかにオフにすることができます)。

プレフィックスを付けない理由は、これを使用する必要があるためです。代わりにプレフィックスを付けます。

私が抱えている問題は、それがどのように違いを生んでいるのか理解できないということですか? つまり、クラス内の public メンバーでこれを使用できないわけではありません。

次のような Customer クラスを想像してみましょう。

(明らかに、このような単純なケースでは、自動プロパティを使用できますが、これは単なる例です)。

このクラス内に 2 番目のプロパティを追加した場合、this.age (プライベート フィールド) ではなく this.Age (パブリック プロパティ) を使用して参照することを妨げるものは何もありません。場合によっては、getter レベルで何らかの検証またはフォーマットが適用されていれば、それが望ましいこともあります。

また、顧客の Age を変更するためにクラスの他のプロパティが必要な場合は、バッキング フィールドを直接使用するのではなく、プロパティを使用する方が理にかなっています。セッターはいくつかのビジネス ルールの検証も実装できるからです。

言い換えれば、これは両方で使用でき、IntelliSense は両方を表示するため、このキーワードがプライベート バッキング メンバーとパブリック プロパティの間の混乱をどのように回避するのか本当にわかりませんか?

ありがとう。

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

objective-c - Objective-C:クラスのメンバーをクラスの外から隠すにはどうすればよいですか?

私は何かと戦っていますが、満足のいく解決策は見つかりません。

「myMutableArray」メンバーを持つクラスがあります。

クラスが配列のアイテムの追加と削除を自分で管理するようにしたいので、他のクラスがメンバーにアクセスしてそのメンバーでNSMutableArrayメソッドを呼び出せないようにします。

理想的な状況では、このメンバーのプライベートゲッター(self.myMutableArrayを呼び出せるようにするため)とパブリックセッターが必要です。

私がこれをどのように達成できるか知っていますか?

言い換えると :

他のクラスが欲しい

電話できる

電話できない:

クラスをお願いします

電話できる

ありがとうございました。

0 投票する
7 に答える
155 参照

c++ - クラスとメンバー変数

というコンテナ クラスがあるとしmyListます。capacityこのコンテナー クラスには、インスタンス内の値の数を保持するという名前のプライベート メンバー変数があります。

クラスのユーザーがcapacityfor にアクセスできると便利な場合があります。たとえば、ループ内の各値を調べているときに最後に到達したことを知ることができます。したがって、capacity公開する必要があります。

ただし、これにより、クラスのユーザーが を変更できるようになりcapacity、明らかに問題が発生します。

capacityプライベート変数であるの値を返すだけのパブリック メンバー関数を使用することは、悪い習慣と見なされますか? 例えば:

の値が変更さcapacityれるたびに の値に更新される「クローン」変数についてはどうでしょうか。capacityクラスのユーザーは、プライベート変数自体ではなく、パブリックの「クローン」にアクセスします。

0 投票する
11 に答える
29450 参照

oop - CoffeeScriptのプライベートメンバー?

誰かがCoffeeScriptで非静的なプライベートメンバーを作成する方法を知っていますか?現在、私はこれを行っています。これは、アンダースコアで始まるパブリック変数を使用して、クラスの外部で使用してはならないことを明確にします。

変数をクラスに入れると静的メンバーになりますが、どうすれば非静的にすることができますか?「ファンシー」にならずにそれも可能ですか?

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

c# - クロージャー内でLock()することは可能ですか?Lambdasとコード出力ではどのように見えますか?

私はこの質問を読んでいて、この回答を読んでいました

これは実際には素晴らしい機能です。これにより、通常は非表示になっているもの、たとえばプライベートクラス変数にアクセスするクロージャを作成し、イベントなどへの応答として制御された方法で操作できるようになります。

変数のローカルコピーを作成し、それを使用することで、必要なものを非常に簡単にシミュレートできます。

この状況でLock()を実装する必要がありますか?

それはどのように見えるでしょうか?

Eric Lippertによると、コンパイラはコードを次のように見せます

ラムダと長い形式のコードはどのようになりますか?

0 投票する
10 に答える
26870 参照

c++ - 特定の関数を非表示にするC++の方法

私は継承を持っていますstruct A : public B、私はBから個々の関数を隠したいのですが、これは可能ですか?

私はusing BMethod、A宣言で使用すると反対のことが可能であることを知っています。

乾杯

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

java - PHP & Java:プロパティの可視性をプライベートに設定し、派生クラスからゲッター経由でアクセスするのはやり過ぎですか?

それで、あなたはどう思いますか?

私の Java 講師は、プロパティは常に非公開であると宣言する必要があり、それ以外の方法で宣言する必要はないと言いました。私はすぐに、継承がそれにどのように影響するかを考え始めました。

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

visual-c++ - リストボックスのビジュアルフォームに継承されたメインからのビジュアル++印刷

「メイン」クラスをA(Veichle)と呼び、Aから継承した2つのクラスをB(Car)とC(MC)と呼びます。また、A、B、Cをバインドする「D」と呼ぶハンドラーがあります。次に、Form1クラスでそのE(Visual)を呼び出すことができます。

リストボックスのビジュアルフォーム「E」にAのプライベートメンバーを印刷したい

私が元を試してみる場合)

this-> listbox1-> items-> add(X.veichles [i]-> getBrand());

veichlesがDのプライベートメンバーであると文句を言います。

どうすればそれを回避できますか?

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

c++ - C++で構造体へのポインタの配列を初期化する方法は?

更新:一番下に答えてください。

こんにちは、みんな、

「構造体へのポインタの配列」を初期化する方法は? 問題は、配列がメンバー変数であり、コンストラクターで配列の宣言に渡されるサイズが変数エンティティであることです。

ここでは、テーブルを Doubly ノードへのポインターの配列にし、すべてのポインターを NULL に初期化する必要があります。このコードの何が問題なのですか? 上記を実行するための他のより良い方法は何ですか? 前もって感謝します。

アップデート :

議論の後、サイズが大きく失望したことを考慮して、コードを変更しました。しかし、特定の数の NULL 値でベクター テーブルを埋める方法は?以下のコードを試しましたが、動作しません。

回答の更新: