使用没有函数或类语法的C#括号

Jon*_*eal 3 c# syntax

我是C#的新手,我找不到合适的搜索内容.我试图理解这三种语法之间的区别:

  1. public string Topic(){}
  2. public class Topic{}
  3. public string Topic{}

我知道第一个是一个功能而第二个是一个类,但让我困惑的是第三个是什么.

什么#3叫做以及如何使用?

任何可以提供清晰度的东西.

Mar*_*ves 5

第三是财产.C#中最常见的表示形式是自动生成的属性,如下所示:

public string Topic { get; set; }
Run Code Online (Sandbox Code Playgroud)

这相当于:

private string _topic;

public string Topic
{
    get { return _topic; }
    set { _topic = value; }
}
Run Code Online (Sandbox Code Playgroud)

它应该用于保存对象的内部状态.

它可以是只读属性,仅限getter:

public string Topic { get; }
Run Code Online (Sandbox Code Playgroud)

或者只有setter:

public string Topic { set; }
Run Code Online (Sandbox Code Playgroud)

您还可以在getter和setter中应用辅助功能修改器,例如:

public string Topic { protected get; private set; }
Run Code Online (Sandbox Code Playgroud)