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

时间:2015-02-08 10:40:02

标签: c# .net 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();
}

1 个答案:

答案 0 :(得分:6)

这些是属性。 属性 是一个声明性标记,用于向运行时传递有关程序中各种元素(如类,方法,结构,枚举器,程序集等)的行为的信息。 。您可以使用属性将声明性信息添加到程序中。声明性标记由位于其所用元素上方的方括号([])括号描述。
例如,属性可用于指示类是否可序列化,或数据库中哪个字段应将特定属性写入等等......

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

 [OperationContract(IsOneWay = true, IsInitiating = false, IsTerminating = false)]

该属性为OperationContractIsOneWayIsInitiatingIsTerminating是此属性的属性。

  

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

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

您可以找到所有预定义属性及其说明here
您可以通过msdn阅读有关属性的this教程。