0

理論的な質問です。

私が理解しているように、メソッドはある種の動作を実装するために使用され、プロパティはオブジェクトの状態を保持するために使用されます。

プロパティではなく、メソッドXContainer.Nodes()として実装されていることがわかりました 。XElement.Attributes()そして、IMHO、プロパティとして実装する必要がある他のメソッド:XNode.ElementsAfterSelf()などXNode.ElementsBeforeSelf() XNode.NodesAfterSelf()

したがって、返さIEnumerable of somethingれるものはすべて、Linq to XML のメソッド (プロパティではない) として実装されます。

その理由は何ですか?つまり、特定のケースに役立つのでしょうか、それとも、より期待される代わりに返される、たとえばString.Split()メソッドのような単なる間違いですか?char arrayIEnumerable<char>

4

1 に答える 1

1

Microsoft の「プロパティとメソッドの選択」を引用するには:

一般に、メソッドはアクションを表し、プロパティはデータを表します。プロパティは、フィールドのように使用されることを意図しています。つまり、プロパティは、計算が複雑であったり、副作用を引き起こしたりしてはなりません。次のガイドラインに違反していない場合は、メソッドではなくプロパティを使用することを検討してください。

メンバーが型の論理属性を表す場合は、プロパティの使用を検討してください。

たとえば、境界線のスタイルは ListView の属性であるため、BorderStyle はプロパティです。

プロパティの値がプロセス メモリに保存され、プロパティが値へのアクセスを提供するだけの場合は、メソッドではなくプロパティを使用してください。

ここで「プロパティとメソッド」を読むこともできます

最後のリンクからのこの説明が好きです

操作のコストが高いため、結果のキャッシュを検討する必要があることをユーザーに伝えたい場合。

于 2013-10-16T18:09:44.447 に答える