我找不到"领域"列为C#关键字的任何地方。任何人都不会知道的背景吗?

有帮助吗?

解决方案

C#编译器通常没有麻烦找出什么的一部分,《宣言》的属性适用。我能想到的三种情况下,你可能会使用:

  1. 属性的,适用于大会。非常可见在程序集信息.cs
  2. 一个属性应用于返回值P/援引《宣言》,[返回:MarshalAs]
  3. 具有的特性适用于背变量的财产或事件没有访问器。你的情况。

其他提示

这是必要的,例如,如果要标记的事件作为不可序列。它指定该属性适用于该目标。

有属性目标语法的一部分。从规范

attribute-target:
    field
    event
    method
    param
    property
    return
    type

参见文档 NonSerializedAttribute

  

要的NonSerializedAttribute类适用于一个事件,设置属性位置字段,如图下面的C#代码。

     

[field:NonSerializedAttribute()]

     

public event ChangedEventHandler Changed;

这意味着允许您设置字段属性非序列化,这是序列化的事件是有用的。

例如,这会给你一个编译错误

[NonSerialized]
public event SomeEventHandler SomeEvent;

要解决这个问题,你必须使用field:

[field:NonSerialized]
public event SomeEventHandler SomeEvent;

更多内容在这里 - 代表和序列化

在NonSerializedAttribute只适用于字段,可以如下使用它:

[NonSerialized]
public string myString;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top