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

我需要知道这是“自定义属性”还是一种特殊属性。

这是一个属性。

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 inobject.MessageInfo.text实际上表示 BBB 类中的另一个公共属性。

您可以查看有关 C# 属性或此ONE的这篇MSDN文章。

于 2013-08-24T15:34:12.253 回答
0

C# Language Specification,第 10.7 节:

属性是提供对对象或类的特征的访问的成员。属性的示例包括字符串的长度、字体的大小、窗口的标题、客户的姓名等。属性是字段的自然扩展——两者都是具有关联类型的命名成员,访问字段和属性的语法是相同的。但是,与字段不同,属性不表示存储位置。相反,属性具有指定在读取或写入其值时要执行的语句的访问器。因此,属性提供了一种将动作与对象属性的读取和写入相关联的机制;此外,它们允许计算这些属性。

单击链接,下载规范,导航到第 10.7 节,并将其添加到您的阅读列表中。

于 2013-08-24T15:26:52.987 回答