나는 the source code of StyleCop를 탐색하고있어, 나는 호기심이 일 발견C# 클래스의 @namespace 필드 란 무엇입니까?
/// <summary>
/// The namespace that the rule is contained within.
/// </summary>
private string @namespace;
// [...]
internal Rule(string name, string @namespace, string checkId, string context, bool warning) : this(name, @namespace, checkId, context, warning, string.Empty, null, true, false)
{
Param.Ignore(name, @namespace, checkId, context, warning);
}
이 일이 무엇입니까? 그저 단순한 필드입니까? namespace
키워드가 아니라 at-sign이 필드임을 나타내는 데 사용됩니까? 그렇다면 예약어에 at-sign을 사용할 수 있습니다 (예 : @dynamic
, @using
등).
예약어뿐만 아니라, @ *로 * 식별자를 시작할 수 있습니다. 왜? * 미래에 어떤 단어가 키워드가 될지 모르기 때문에 *. 만약 당신이 편집증적이고 언젠가 우리가 "ㅋㅋ"를 문맥 적 키워드로 만들 것을 두려워한다면 "int @blah;"라고 말할 수 있습니다. blah 연산자를 추가 할 때도 코드가 계속 컴파일되는지 확인하십시오. –
필드의 이름은 "@namespace"가 아니라 "namespace"입니다. @는 컴파일러에게 "다음은 키워드가 아니라 이름입니다"라고 알려줍니다. 그렇지 않으면 무시됩니다. –