在 C# 中,与 Lombok 类似的库是 PostSharp。PostSharp 提供了一组强大的 AOP(面向切面编程)功能,可以通过注解(Attribute)来实现。以下是一些常用的 PostSharp 注解:
[NotNull]
:确保方法参数或属性不为 null。如果传递了 null 值,将抛出 ArgumentNullException 或 NullReferenceException。[CanBeNull]
:允许方法返回值或属性为 null。这是一个元注解,用于指示其他注解可以接受 null 值。[Pure]
:表示方法是纯函数,即对于相同的输入始终返回相同的输出,并且没有副作用。[Cache]
:缓存方法的结果,以提高性能。当使用相同的参数调用方法时,将返回缓存的结果而不是重新计算。[Log]
:自动记录方法的调用和异常。可以配置日志级别、格式等。[Serializable]
:使类型可序列化。[IgnoreMember]
:忽略某个成员,例如在序列化或比较时。[OnMethodBoundaryAspect]
:定义一个切面,可以在方法边界(如方法调用前后)执行自定义代码。[LocationInterceptionAspect]
:定义一个切面,可以在方法内部的特定位置(如方法调用前后、异常处理等)执行自定义代码。请注意,这些注解并非 Lombok 的一部分,而是 PostSharp 提供的功能。在 C# 中,Lombok 的功能主要由 Roslyn 分析器和代码生成器实现。