タグ付けされた質問 「properties」

プロパティは、一部のオブジェクト指向プログラミング言語では、フィールド(またはデータメンバー)とメソッドの中間にある特別な種類のクラスメンバーです。プロパティはフィールドのように読み書きされますが、プロパティの読み書きは(通常)メソッド呼び出しを取得および設定するために変換されます。


14
C#でプロパティの使用を避ける必要があるのはなぜですか?
Jeffrey Richterは、優れた著書であるCLR Via C#で、プロパティは好きではないので、使用しないことを推奨しています。彼は何らかの理由を挙げましたが、私にはよくわかりません。プロパティを使用する理由または使用しない理由を誰かに説明できますか?自動プロパティを備えたC#3.0では、これは変更されますか? 参考として、ジェフリー・リヒターの意見を追加しました。 •プロパティは読み取り専用または書き込み専用です。フィールドアクセスは常に読み取りと書き込みが可能です。プロパティを定義する場合は、getとsetの両方のアクセサーメソッドを提供するのが最善です。 •プロパティメソッドは例外をスローする場合があります。フィールドアクセスは例外をスローしません。 •プロパティをoutまたはrefパラメーターとしてメソッドに渡すことはできません。フィールドはできます。たとえば、次のコードはコンパイルされません。 using System; public sealed class SomeType { private static String Name { get { return null; } set {} } static void MethodWithOutParam(out String n) { n = null; } public static void Main() { // For the line of code below, …
102 c#  properties 

7
Pythonで辞書から属性を設定する
各キーがそのオブジェクトの属性になるような方法で、Pythonのディクショナリからオブジェクトを作成することは可能ですか? このようなもの: d = { 'name': 'Oscar', 'lastName': 'Reyes', 'age':32 } e = Employee(d) print e.name # Oscar print e.age + 10 # 42 私はそれがこの質問のほぼ逆になると思います:オブジェクトのフィールドからのPython辞書

3
一貫性のないアクセシビリティ:プロパティタイプはアクセスしにくい
次のエラーについて誰かが助けてください: 一貫性のないアクセシビリティ:プロパティタイプ 'Test.Delivery'はプロパティ 'Test.Form1.thelivery'よりもアクセスしにくい private Delivery thedelivery; public Delivery thedelivery { get { return thedelivery; } set { thedelivery = value; } } 不整合のエラーメッセージが表示されたため、プログラムを実行できません。 これが私の配達クラスです: namespace Test { class Delivery { private string name; private string address; private DateTime arrivalTime; public string Name { get { return name; } set …
100 c#  properties 

2
繰り返し処理中にオブジェクトプロパティを削除しても安全ですか?
オブジェクトのプロパティを反復処理するとき、for-inループ内でそれらを削除しても安全ですか? 例えば: for (var key in obj) { if (!obj.hasOwnProperty(key)) continue; if (shouldDelete(obj[key])) { delete obj[key]; } } 他の多くの言語では、配列または辞書を繰り返し処理し、その内部を削除することは安全ではありません。JSでは大丈夫ですか? (私はMozillaのSpidermonkeyランタイムを使用しています。)

4
PropertiesConfigurationを使用して複数行のプロパティ値を書き込む方法は?
List値(カンマ区切り)を持つプロパティを含むプロパティファイルがあります。このプロパティを複数行で記述する方法を教えてください。(コンマの後のバックスラッシュ)? これについて、または少なくともコンマからコンマとバックスラッシュへのエスケープについては何も見つかりません。

9
オブジェクトの列挙不可能な継承されたプロパティ名を取得することは可能ですか?
JavaScriptでは、取得する内容に応じて、オブジェクトのプロパティを取得する方法がいくつかあります。 1)Object.keys()、オブジェクトのすべての独自の列挙可能なプロパティ、ECMA5メソッドを返します。 2)for...inループ。オブジェクトの列挙可能なすべてのプロパティを返します。それらが独自のプロパティであるか、プロトタイプチェーンから継承されているかは関係ありません。 3)Object.getOwnPropertyNames(obj)列挙可能かどうかにかかわらず、オブジェクトのすべての独自のプロパティを返します。 hasOwnProperty(prop)プロパティが継承されているかどうか、または実際にそのオブジェクトに属しているかどうかを確認できるメソッドもありpropertyIsEnumerable(prop)、名前が示すように、プロパティが列挙可能かどうかを確認できます。 これらすべてのオプションを使用すると、オブジェクトの列挙不可能な、所有されていないプロパティを取得する方法はありません。これは、私がやりたいことです。これを行う方法はありますか?言い換えれば、継承された列挙できないプロパティのリストをどうにかして取得できますか? ありがとうございました。

6
JavaScriptオブジェクトの値を動的に設定する方法は?
ケースを言葉で説明するのは難しいので、例を挙げましょう。 var myObj = { 'name': 'Umut', 'age' : 34 }; var prop = 'name'; var value = 'Onur'; myObj[name] = value; // This does not work eval('myObj.' + name) = value; //Bad coding ;) JavaScriptオブジェクトの変数値で変数プロパティを設定するにはどうすればよいですか?


10
Swiftで計算された読み取り専用プロパティvs関数
Swift WWDCセッションの概要では、読み取り専用プロパティdescriptionを示しています。 class Vehicle { var numberOfWheels = 0 var description: String { return "\(numberOfWheels) wheels" } } let vehicle = Vehicle() println(vehicle.description) 代わりにメソッドを使用するよりも、上記のアプローチを選択することに意味がありますか? class Vehicle { var numberOfWheels = 0 func description() -> String { return "\(numberOfWheels) wheels" } } let vehicle = Vehicle() println(vehicle.description()) 読み取り専用の計算済みプロパティを選択する最も明白な理由は次のとおりです。 セマンティクス -この例ではdescription、クラスが実行するアクションではなく、クラスのプロパティであることが理にかなっています。 簡潔/明確 …

9
WCFは、「セット」のないプロパティを制限します。回避策はありますか?
サービスメソッドの結果として渡すクラスがいくつかあり、そのクラスには取得専用のプロパティがあります。 [DataContract] public class ErrorBase { [DataMember] public virtual string Message { get { return ""; } } } サービス側で例外が発生しています: System.Runtime.Serialization.InvalidDataContractException:タイプ「MyNamespace.ErrorBase」のプロパティ「Message」の設定メソッドがありません。 このプロパティはゲッターとしてのみ使用する必要があります。ユーザーに値を割り当てることはできません。使用できる回避策はありますか?または、追加の属性が不足していますか?

10
Python読み取り専用プロパティ
属性をプライベートにする必要があるのか​​、プロパティを使用する必要があるのか​​わかりません。 私は最近、セッターとゲッターがpythonicではなく、プロパティデコレーターを使用する必要があることを読みました。大丈夫です。 しかし、もし私が属性を持っている場合、それはクラスの外部から設定されてはいけませんが、読み取ることができます(読み取り専用属性)。この属性はプライベートである必要がありself._xますか?はいの場合、ゲッターを使用せずにそれをどのように読むことができますか?私が今知っている唯一の方法は書くことです @property def x(self): return self._x そうすれば属性を読み取ることができますobj.xが、設定できないobj.x = 1ので問題ありません。 しかし、設定してはならないオブジェクトを設定することについて本当に気にする必要がありますか?多分私はそれをそのままにしておくべきです。しかし、obj._xユーザーにとって読みが奇妙なため、アンダースコアを使用することはできません。使用する必要がありますがobj.x、ユーザーは、この属性を設定してはならないことを知りません。 あなたの意見と実践は何ですか?

2
Moq、SetupGet、プロパティのモック
と呼ばれるUserInputEntityプロパティを含む、と呼ばれるクラスをモックしようとしColumnNamesています(他のプロパティが含まれているので、質問のために単純化しました) namespace CsvImporter.Entity { public interface IUserInputEntity { List<String> ColumnNames { get; set; } } public class UserInputEntity : IUserInputEntity { public UserInputEntity(List<String> columnNameInputs) { ColumnNames = columnNameInputs; } public List<String> ColumnNames { get; set; } } } プレゼンタークラスがあります: namespace CsvImporter.UserInterface { public interface IMainPresenterHelper { //... } public class …
94 c#  c#-4.0  properties  moq 

7
Objective-Cの読み取り専用プロパティ?
私は自分のインターフェイスで次のように読み取り専用プロパティを宣言しました: @property (readonly, nonatomic, copy) NSString* eventDomain; プロパティを誤解しているかもしれませんが、として宣言するとreadonly、実装(.m)ファイル内で生成されたセッターを使用できますが、外部エンティティは値を変更できないと思いました。このSOの質問は、それが起こるべきことだと言っています。それが私が求めている行動です。ただし、標準のセッターまたはドット構文を使用しeventDomainてinitメソッド内に設定しようとすると、unrecognized selector sent to instance.エラーが発生します。もちろん私は@synthesizeその物件を所有しています。次のように使用しようとしています: // inside one of my init methods [self setEventDomain:@"someString"]; // unrecognized selector sent to instance error だから私readonlyはプロパティの宣言を誤解していますか?または何か他のことが起こっていますか?

5
C#プロパティ:プライベートフィールドなしでカスタムセットプロパティを使用する方法
私はこれをしたいです: public Name { get; set { dosomething(); ??? = value } } 自動生成されたプライベートフィールドを使用することはできますか? それとも、この方法で実装する必要がありますか? private string name; public string Name { get { return name; } set { dosomething(); name = value } }
93 c#  properties 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.