C#类定义未知

时间:2009-11-13 18:53:17

标签: c#

我正在查看一些C#代码,我看到了一些我无法在类定义附近弄清楚的东西。以下是我所看到的样本。

[MethodImpl(MethodImplOptions.Synchronized)]
public void AddTag(RTag tag)
{
    this.tags.Add(tag)
}

第一线做什么或说什么?我无法在任何参考书中找到它。

谢谢!

4 个答案:

答案 0 :(得分:6)

第一行是attribute,即附加到方法的元数据。

MethodImplAttribute指定方法的实现细节。特别是MethodImplOptions.Synchronized

  

指定该方法一次只能由一个线程执行。静态方法锁定类型,而实例方法锁定实例。只有一个线程可以在任何实例函数中执行,并且只有一个线程可以在任何类的静态函数中执行。

答案 1 :(得分:2)

在我指向课程的文档之前,在看到这样的属性时提示,这是一个属性:

[SomeName]

[SomeName(...)]

然后通常,实际的类名是SomeNameAttribute。使用属性时,如果类名以单词Attribute结尾,则可以将结尾保留。

您的示例中的类很可能是MethodImplAttribute,但我发现您可能拼写错误,错过了结束L字母。

答案 2 :(得分:1)

它以这样的方式标记方法,即它一次只能从一个方法调用:

http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.methodimploptions(VS.71).aspx

这对于在方法开始时执行锁定并在方法结束时释放锁定是等效的。

答案 3 :(得分:0)

[MethodImp(methodImpOptions.Synchronized)] 属性是否应用于方法...可能是在引用的库中定义的。