C# 自定义属性或特殊属性,或者这是一种模式?

C# 自定义属性或特殊属性,或者这是一种模式?,c#,properties,attributes,encapsulation,C#,Properties,Attributes,Encapsulation,我想弄清楚他们在这里使用的是什么编程技术。正如您可能看到的,“AAA类”有一个名为“MessageInfo”的类型类属性。我需要知道这是“自定义属性”还是一种特殊属性 我试着做研究,读不同的书,但我还是很困惑 public class AAA { public BBB MessageInfo { get; set; } object.MessageInfo.text = "xxxxx"; } public class BBB { // text here... }

我想弄清楚他们在这里使用的是什么编程技术。正如您可能看到的,“AAA类”有一个名为“MessageInfo”的类型类属性。我需要知道这是“自定义属性”还是一种特殊属性

我试着做研究,读不同的书,但我还是很困惑

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

    object.MessageInfo.text = "xxxxx";
}

public class BBB
{
    // text here... 
}
从第10.7节:

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

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

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

这是一处房产

在C#3.0及更高版本中,当属性访问器中不需要额外逻辑时,自动实现的属性使属性声明更加简洁。它们还允许客户端代码创建对象。当您在示例中声明属性时,编译器将创建一个私有的匿名备份字段,该字段只能通过属性的get和set访问器访问。

像这样的

private BBB _bbb;
public BBB MessageInfo 
{ 
get{ return _bbb;}
set{_bbb= value;} 
}

这只是BBB类的属性。
object.MessageInfo.text
中的.text实际上表示类BBB中的另一个公共属性


你可以看看这篇关于C#properties或这个的文章。

我不明白你在问什么。你展示的代码没有编译,所以我不明白什么是令人困惑的部分。属性本身看起来非常普通。什么让你困惑?行
object.MessageInfo.text=“xxxxx”
无效,因为
对象
不包含名为
MessageInfo
的成员,它也无法执行此操作,因为
对象
内置在.NET中,无法更改。我怀疑电话线不应该在那里。