問題タブ [accessor]
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.
ruby - 属性の遅延インスタンス化を行うために attr_reader をカスタマイズする
(大きな編集、そこへの道のりの一部を手に入れました…)私はハッキングしてきましたが、属性が読み取られる前に行う必要があることを指定する方法としてこれを思いつきました:
しかしchangethings、方法として認識されていません — 誰か何かアイデアを持っていますか?
cocoa - Cocoaは、キーを「セット」プロパティアクセサーに変換するための組み込みメソッドを提供しますか?
Cocoaには、キー文字列を適切にフォーマットされたセットプロパティアクセサーに変換するための組み込みメソッドが用意されていますか?すなわち"lineSpacing" -> setLineSpacing:
例えば:
あるいは:
バックグラウンド:
辞書に保存されているプロパティ値を使用して、名前でいくつかのプロパティを設定するメソッドに取り組んでいます。やなどsetObject:forKeyの組み込み型のプロパティにもこのメソッドを使用しているため、使用できません。これは、CGFloatに使用する方法の例です。NSIntegerCGFloat
このメソッドは、「color」や「width」などの1単語のプロパティでは機能しますが、「lineSpacing」や「meaningOfLifeTheUniverseAndEverything」などの複数単語のプロパティでは機能しません。これは、このcapitalizeメソッドが最初の文字を大文字にし、後続のすべての文字を小文字に設定するためです。キーとして「lineSpacing」を使用して上記のメソッドを呼び出すと、正しいプロパティセッターが失敗するため、失敗しますsetLineSpacing:。setLinespacing:
c# - アクセサーでクラス属性を公開する
私の質問を説明する正しい技術用語がわからないので、例を挙げます。
問題は、アクセスPublicvect.Xしようとするとエラーが発生することCannot modify the return value of 'Publicvect' because it is not a variableです。これを回避する方法はありますか?Publicvect = new Point(NewX, Publicvect.Y);それとも永遠にやる必要がありますか?
c# - C#アクセサーメソッドを使用する時期と理由
重複の可能性:
C#-関数の代わりにプロパティを使用する場合
「ゲッター」と「セッター」をいつ、なぜ使うのかを理解しようとしています
誰かがいくつかのガイダンスを提供していただけませんか。
次の構成の違いは何ですか?アクセサメソッドのみを見てください。
c# - Get-Set Accessorの機能は、get-setキーワードの存在によって異なります。
私は現在、RSAアルゴリズムの貧乏人バージョンを実装しており、素数d、e、m、およびnは、コンストラクター本体内で自動的に生成されるため、読み取り専用にする必要がありました。ただし、入力すると2つの異なる結果が得られます。
また
Accelarated C#という本を読んで、自動実装されたプロパティを使用してプライベート集合関数を実装できるという印象を受けました。コンストラクター自体でも実行できますが、最初のバージョンでのみ実行できます。
C#3.0標準を読むと次のようになります。
A property that has both a get accessor and a set accessor is a read-write property, a property that has only a get accessor is a read-only property, and a property that has only a set accessor is a write-only property.
しかし、それらは同じように動作しません。
簡単な質問:明示的に宣言したときにコンストラクターで値を初期化できるのに、private set暗黙的に宣言した場合はできないのはなぜですか?ここでの違いは何ですか?
c# - C# アクセサーはプライベート変数を使用するか、オンザフライで計算する必要がありますか?
どちらがより良いプログラミング手法で、その理由は何ですか?
私はこのようなクラスを持っています:
average_count は read_only で、カウント / 時間の計算を行う必要があります。
アクセサを次のように記述した方がよいでしょうか。
または、次のようなことをする必要があります。
time および count セット アクセサーの場合、_avg_count はどこで更新されますか?
最初の方が読みやすいようですが、 average_count が頻繁にアクセスされると遅くなる可能性があります。コンパイラーの最適化によって、違いはほとんどなくなりますか?
iphone - iPhone CoreData プロパティ: managedObjects への変更が遅すぎる
iPhone アプリに CoreData モデルがあり、これは 50,000 を超えるレコードを持つ SQL データベースにリンクされています。レコード クラスを生成すると、Xcode はプロパティに @dynamic ディレクティブを使用します。「ISFAV」という名前の NSNumber 型のプロパティがあります (CoreData は BOOL または Integer を使用せず、オブジェクト型を使用します)。手短に言えば、ユーザーがボタンをタップしたときに ISFAV プロパティを次のように変更します。
record.ISFAV=[NSNumber numberWithInt:1];
else record.ISFAV=[NSNumber numberWithInt:0];
とてもシンプルです。しかし、同じボタンを連続して何度もタップしようとすると、iPhone に時間がかかりすぎます (ボタンがホールド状態のままになり、その時間が徐々に長くなります)。これは、お気に入りから同じレコードを追加または削除するのではなく、お気に入りから多くのレコードを順番に追加または削除して、レコードを変更しても発生します。
元のアクセサーメソッドを @synthesize に変更すれば問題は解決しそうです。
CoreData のアクセサ メソッドに synthesize ディレクティブを使用するのは正しいですか?
どうもありがとうございました!
@edit synthesize ディレクティブを使用すると、コンテキストを保存しても CoreData モデルは変更されません:-\ 問題はまだ解決されていません:-\
c# - コンストラクターで値を設定することだけを許可するsetアクセサーの名前は何でしたか?
キーワードが何であったかについて何か考えはありますか?私はいたるところを検索しましたが、グーグルでget/setアクセサーを見つけるのは難しいです。
java - コンストラクターで変数を通常設定するよりも、メソッドを呼び出して変数を設定する方がよいのはなぜですか?
私はJavaの本でプロジェクトを行っていて、このコード例に出くわしました。この本の著者は、コンストラクターでXとYを直接初期化する代わりに、クラスのsetLocation()メソッドを呼び出すことができると述べています。残念ながら、なぜこれが優れているのかについての具体的な説明のための本はもうありません。私はJavaの経験があまりありませんが、値を直接割り当てる方が簡単で、別の関数呼び出しについて心配する必要はありませんか?
c++ - C++ のアクセサー メソッド (getter および setter) の規則
C++ のアクセサ メソッドに関するいくつかの質問が SO に寄せられましたが、この問題に関する私の好奇心を満足させるものはありませんでした。
Stroustrup や他の有名なプログラマーと同様に、私はアクセサーを多く含むクラスは悪い OO の兆候であると考えているため、可能な限りアクセサーを避けるようにしています。C++ では、ほとんどの場合、クラスに責任を追加するか、friend キーワードを使用してそれらを回避できます。しかし場合によっては、特定のクラス メンバーへのアクセスが本当に必要になります。
いくつかの可能性があります:
1.アクセサを一切使わない
それぞれのメンバー変数を公開するだけです。これは Java では禁止されていますが、C++ コミュニティでは問題ないようです。ただし、オブジェクトへの明示的なコピーまたは読み取り専用 (const) 参照を返す必要がある場合については少し心配ですが、それは誇張ですか?
2. Java スタイルの get/set メソッドを使用する
それがJavaからのものかどうかはまったくわかりませんが、これは次のことを意味します。
3. 客観的な C スタイルの get/set メソッドを使用する
これは少し奇妙ですが、明らかにますます一般的になっています。
これを機能させるには、メンバー変数に別の名前を付ける必要があります。アンダースコアを追加する人もいれば、先頭に「m_」を追加する人もいます。私も好きじゃない。
使用するスタイルとその理由は?