문제

어디에서나 C# 키워드로 나열된 "필드"를 찾을 수 없습니다. 누구든지 이것에 대한 배경을 아는 사람이 있습니까?

도움이 되었습니까?

해결책

C# 컴파일러는 일반적으로 속성이 적용되는 선언의 일부를 파악하는 데 어려움이 없습니다. 당신이 그것을 사용할 수있는 세 가지 사례를 생각할 수 있습니다.

  1. 어셈블리에 적용되는 속성. AssemblyInfo.cs에서 매우 눈에 띄는다
  2. p/invoke 선언의 반환 값에 적용되는 속성, [return : 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