Возможность использовать выражения LINQ для выполнения строго типизированного отражения:
static void Main(string[] args)
{
var domain = "matrix";
Check(() => domain);
Console.ReadLine();
}
static void Check(Expression> expr)
{
var body = ((MemberExpression)expr.Body);
Console.WriteLine("Name is: {0}", body.Member.Name);
Console.WriteLine("Value is: {0}", ((FieldInfo)body.Member)
.GetValue(((ConstantExpression)body.Expression).Value));
}
// output:
// Name is: 'domain'
// Value is: 'matrix'
Более подробная информация доступна на Как узнать имя переменной или параметра в C #?
См. java.lang.annotation.Documented
Указывает, что аннотации с типом должны быть задокументированы с помощью javadoc и т.п. инструменты по умолчанию. Этот тип следует использовать для аннотирования объявлений типов, аннотации которых влияют на использование аннотированных элементов их клиентами. Если объявление типа аннотировано с помощью Documented, его аннотации становятся частью общедоступного API аннотированных элементов.
Пример:
import java.lang.annotation.Documented;
@Documented
public @interface MyAnnotation {
}