在C#中,在类或函数之前用方括号写的东西是什么?

edd*_*ark 2 .net c# wpf wcf

我熟悉C和C++.我是第一次使用C#.我试图了解WCF和WPF.我在CodeProject中使用了一个教程.作者在那里给出了一个示例代码.在那里,他在方括号中的界面和方法之前写了一些东西.那些是什么?他们是评论吗?这是给定的示例代码.

[ServiceContract(SessionMode = SessionMode.Required, 
    CallbackContract = typeof(IChatCallback))]
interface IChat
{
    [OperationContract(IsOneWay = true, IsInitiating = false, 
        IsTerminating = false)]
    void Say(string msg);

    [OperationContract(IsOneWay = true, IsInitiating = false, 
        IsTerminating = false)]
    void Whisper(string to, string msg);

    [OperationContract(IsOneWay = false, IsInitiating = true, 
        IsTerminating = false)]
    Person[] Join(Person name);

    [OperationContract(IsOneWay = true, IsInitiating = false, 
        IsTerminating = true)]
    void Leave();
}
Run Code Online (Sandbox Code Playgroud)

Far*_*yev 8

这些是属性.一个属性是用于传达信息的运行时关于各种元件等的类,方法,结构,统计员,组件等的行为,在程序的声明性代码.您可以使用属性将声明性信息添加到程序中.声明性标签由位于其所用元素上方的方括号([])括号表示.
例如,属性可用于指示类是否可序列化,或者数据库中哪个字段应写入特定属性等等...

例如,让我们看一下这个属性:

 [OperationContract(IsOneWay = true, IsInitiating = false, IsTerminating = false)]
Run Code Online (Sandbox Code Playgroud)

属性是OperationContract.而且IsOneWay,IsInitiating,IsTerminating此属性的属性.

OperationContract - 表示方法定义作为Windows Communication Foundation(WCF)应用程序中服务合同一部分的操作.
IsOneWay - 获取或设置一个值,该值指示操作是否返回回复消息.
IsInitiating - 获取或设置一个值,该值指示方法是否实现可以在服务器上启动会话的操作(如果此类会话存在).
IsTerminating - 获取或设置一个值,该值指示在发送回复消息(如果有)之后服务操作是否导致服务器关闭会话.

您可以使用预定义属性或创建自己的自定义属性.

您可以在此处找到所有预定义属性及其说明.
您可以通过msdn 阅读有关属性的教程.

  • 阅读教程。https://msdn.microsoft.com/zh-CN/library/aa287992(v=vs.71).aspx https://msdn.microsoft.com/zh-CN/library/aa288454(v=vs.71) .aspx (2认同)