在 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 分析器和代碼生成器實現。