1

彼らがここで使用しているプログラミング手法を理解しようとしています。ご覧のとおり、"Class AAA" には "MessageInfo" という型クラス プロパティがあります。これが「カスタム プロパティ」なのか、特殊な属性なのかを知る必要があります。

いろいろ調べたり、本を読んだりしてみましたが、いまだにとても混乱しています。

public class AAA
{
    public BBB MessageInfo { get; set; }

    object.MessageInfo.text = "xxxxx";
}

public class BBB
{
    // text here... 
}
4

3 に答える 3

0

C# 言語仕様のセクション 10.7から:

プロパティは、オブジェクトまたはクラスの特性へのアクセスを提供するメンバーです。プロパティの例には、文字列の長さ、フォントのサイズ、ウィンドウのキャプション、顧客の名前などがあります。プロパティはフィールドの自然な拡張です。どちらも関連する型を持つ名前付きメンバーであり、フィールドとプロパティにアクセスするための構文は同じです。ただし、フィールドとは異なり、プロパティは格納場所を示しません。代わりに、プロパティには、値の読み取りまたは書き込み時に実行されるステートメントを指定するアクセサーがあります。したがって、プロパティは、アクションをオブジェクトの属性の読み取りおよび書き込みに関連付けるためのメカニズムを提供します。さらに、それらはそのような属性を計算することを許可します。

リンクをクリックして仕様をダウンロードし、セクション 10.7 に移動して、参考文献リストに追加してください。

于 2013-08-24T15:26:52.987 に答える
0

これが「カスタム プロパティ」なのか、特殊な属性なのかを知る必要があります。

これはプロパティです。

In C# 3.0 and later, auto-implemented properties make property-declaration more concise when no additional logic is required in the property accessors. They also enable client code to create objects. When you declare a property as you have in your example, the compiler creates a private, anonymous backing field that can only be accessed through the property's get and set accessors..

このようなもの

private BBB _bbb;
public BBB MessageInfo 
{ 
get{ return _bbb;}
set{_bbb= value;} 
}
于 2013-08-24T15:33:54.963 に答える
0

これは単純にタイプ クラス BBBのプロパティです。そして、.text はobject.MessageInfo.text実際には、クラス BBB 内の別の Public プロパティを示しています。

C# のプロパティに関するこのMSDNの記事またはこのONEをご覧ください。

于 2013-08-24T15:34:12.253 に答える