2013-05-10 1 views
4

이것은 매우 기본적인 질문이어야합니다. 잠시 동안 인터넷에 걸려 넘어지면 아래 코드를 이해할 수 없습니다. 나는 C#에 매우 익숙하다. 바로 이러한 attributes있는 사용 [] (대괄호)의 경우다음 구문에서 대괄호 "[]"를 사용하는 것은 무엇입니까

class Options 
{ 
    [Option('f', "file", Required = true, 
     HelpText = "Input file to be processed.")] 
    public string InputFile { get; set; } 

    [Option('o', "outprefix", Required = true, 
     HelpText = "Output prefix for file.")] 
    public string OutPreFix { get; set; } 

    [Option('v', "verbose", DefaultValue = false, 
     HelpText = "Prints all messages to standard output.")] 
    public bool Verbose { get; set; } 

    [ParserState] 
    public IParserState LastParserState { get; set; } 

    [HelpOption] 
    public string GetUsage() 
    { 
     return HelpText.AutoBuild(this, (HelpText current) => HelpText.DefaultParsingErrorsHandler(this, current)); 
    } 
} 
+0

감사합니다. 나는 다음 번에 중복 된 질문을 추가하지 않도록 할 것입니다. 사과 !! –

+0

감사합니다. 하비브 ... 지금 링크로갑니다 ... –

답변

7

무엇인지. 기본적으로 멤버에 대한 사용자 지정 메타 데이터를 제공합니다. 이 메타 데이터는 어셈블리에 내장되어 있으며 다른 코드에서 가져올 수 있습니다 (리플렉션을 통해). 그러면 원하는 용도로 정보를 사용할 수 있습니다.

이 경우에는 명령 줄에서 지정할 수있는 속성에 대해 메타 데이터를 제공하는 데 사용되며 아마도 this library이 사용하게됩니다.

C#을 처음 사용하는 사람이라면 잠시 동안 무시할 수 있습니다. 개발의 종류에 따라 크게 달라질 수 있습니다. 일부 코드는 속성 (예 : MVC)에 많이 의존하며 다른 코드는 거의 그것을 만지지 않습니다.

+1

고마워요.이게 정말 도움이되었습니다. 또한 나는 C#으로 작성된 기존의 repo를 선택했기 때문에 그들을 무시할 수 없을 것입니다. 그리고 그것을 다시 작성하기 위해 그것을 이해해야합니다. 다시 한번 감사드립니다. –

1

이들은 속성입니다.이 속성은 배치되는 멤버 (클래스, 메서드 등)에 대한 메타 데이터를 효과적으로 정의하며 리플렉션을 사용하여 쿼리 할 수 ​​있습니다. 자세한 내용은 다음을 참조하십시오

0

은 그 유형과 회원들에게 적용 할 수있는 속성입니다. 어떤 사람들은 회원에 대한 더 많은 정보를 제공하는 속성을 가진 회원을 "꾸며"한다고 말합니다. 예를 들어 Data Annotations은 유형 특성에 대한 유효성 검증을 제공하는 데 사용될 수 있습니다.

추가 읽기 : MSDN

당신은 너무 자신의 속성을 만들 수 있습니다 MSDN

희망을 C#에서

+1

대답에 명시 적으로 이름을 지정할 필요가 없습니다. – rahularyansharma

+0

@rahularyansharma 나는 그것이 필요하지 않다는 것을 이해하지만, 저는 그것이 내 이름이고 나는 우호적 인 것을 좋아하기 때문에 좋아합니다. –

+1

@PaulieWaulie 비록 http://stackoverflow.com/faq#signatures와 나는 당신의 이름뿐만 아니라 당신의 그림 오른쪽 하단에 귀하의 사진을 볼 수 있습니다! :) –

0

을하는 데 도움이 방법 이전에 사용 대괄호는 속성을 표시 - 기본적으로 함수 또는 클래스의 작동 방식에 영향을 줄 수있는 메타 데이터입니다. 다양한 용도로 다양한 속성이 있습니다. 그들은 다양한 일을 할 수 있지만, 여기에 몇 가지 예입니다 : 그들은

  • 이 필요로하는 클래스 속성을 표시 웹 서비스를 통해하는 방법에 액세스 할 수 있도록로 직렬화 클래스를 표시 할 수 있습니다

    • (AN 허용은 동료 페이지는 정확한 검증)
    • 변화를 표시 그들은 또한 예를 들어 A의 메타 태그와는 속성이 있으므로 포함 할 수 있습니다

    XML과 JSON 사이의 웹 서비스 메서드의 반환 형식 bove의 경우 Option 태그에는 동작을 변경하는 여러 매개 변수가 설정되어 있습니다 (예 : 필드를 필수로 만들거나 도움말 텍스트를 변경).

    일반적으로 필요한 속성을 필요할 때마다 배우게되므로 모든 가능성을 이해하는 데 너무 많은 걱정을하지 않아도됩니다.

  • 관련 문제