在 C# 中,类或函数之前的方括号中写的是啥? [复制]
Posted
技术标签:
【中文标题】在 C# 中,类或函数之前的方括号中写的是啥? [复制]【英文标题】:In C# what is the thing written in square brackets before a class or a function? [duplicate]在 C# 中,类或函数之前的方括号中写的是什么? [复制] 【发布时间】:2015-04-08 04:51:17 【问题描述】:我熟悉 C 和 C++。我是第一次使用 C#。我试图了解 WCF 和 WPF。我在 CodeProject 中使用教程。作者在那里给出了一个示例代码。在那里,他在方括号中的接口和方法之前写了一些东西。那些是什么?他们是cmets吗? 这是给定的示例代码。
[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】:这些是属性。 属性是一个声明性标签,用于向运行时传达有关程序中各种元素(如类、方法、结构、枚举器、程序集等)的行为的信息.您可以使用属性将声明性信息添加到程序中。声明性标签由放置在其所用元素上方的方括号 ([ ]) 来描述。 例如,属性可用于指示一个类是否可序列化,或特定属性应写入数据库中的哪个字段等等...... p>
以这个属性为例:
[OperationContract(IsOneWay = true, IsInitiating = false, IsTerminating = false)]
属性是OperationContract
。而IsOneWay
、IsInitiating
、IsTerminating
是这个属性的属性。
OperationContract - 表示一个方法定义了一个操作 是 Windows Communication Foundation 中服务合同的一部分 (WCF) 应用程序。 IsOneWay - 获取或设置一个值,指示 操作是否返回回复消息。 IsInitiating - 获取或 设置一个值,该值指示该方法是否实现操作 可以在服务器上启动会话(如果存在这样的会话)。IsTerminating - 获取或设置一个值,该值指示是否 服务操作导致服务器在 回复消息(如果有)已发送。
您可以使用预定义的属性或创建自己的自定义属性。
您可以找到所有预定义属性及其描述here。 你可以阅读 this msdn 的关于属性的教程。
【讨论】:
非常感谢您的回答。我如何知道预定义的属性?我怎样才能创建自己的?有必要吗? 阅读教程。 msdn.microsoft.com/en-us/library/aa287992(v=vs.71).aspxmsdn.microsoft.com/en-us/library/aa288454(v=vs.71).aspx @eddard.stark 我添加了指向关于属性的教程的链接。以及关于 .Net 中所有属性的表格。以上是关于在 C# 中,类或函数之前的方括号中写的是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
sql在update更新时如何快速且大批量的更新数据(C#中写的)