2015-12-30 2 views
2

Я нашел следующее объявление атрибута.Что означает параметр в C# (не params)

 [param: MarshalAs(UnmanagedType.LPTStr)] 

какое ключевое слово param означает в этом контексте и почему мы должны его использовать? KG

+0

Пожалуйста, разместите несколько дополнительных строк, связанных с утверждением param:, я никогда не видел такой вещи. – ViRuSTriNiTy

ответ

5

param является Атрибут объекта. Цитата из MSDN:

Список возможных целевых значений приведен в следующей таблице.

 
C#   Visual Basic Applies to 

             
  
assembly Assembly Entire assembly module Module Current assembly module (which is different from a Visual Basic Module) field Not supported Field in a class or a struct event Not supported Event method Not supported Method or get and set property accessors param Not supported Method parameters or set property accessor parameters property Not supported Property return Not supported Return value of a method, property indexer, or get property accessor type Not supported Struct, class, interface, enum, or delegate

В вашем примере, атрибут, вероятно, используется для свойств сеттер и присваивает атрибут к (неявного) параметра value.

0

Это связано с процессом маршалинга с использованием атрибута MarshalAs, где UnmanagedType.LPTStr обозначает, что он маршалируется как символ Юникода. Параметр '' param используется как атрибут. Как сказал Хайнци, в C# вышеупомянутые целевые значения разрешены, здесь он используется для параметра значения свойства.