[英]Is there anything similar to Java AutoValue in C#?
在從事 Java 項目一段時間后又回到 C# 之后,我發現自己真的很想念 AutoValue。 具體來說,我希望能夠:
使用 AutoValue,所有這些都非常容易。 有沒有類似的? 當然,我可以自己實現所有這些功能,但它有很多樣板,使其更難維護且更容易出錯。
根據您的描述,您似乎需要等到C#9 記錄類型才能獲得您對 java 的AutoValues
的描述,即在 C#9 中,您應該能夠聲明:
public data class Person
{
public string FirstName { get; init; }
public string LastName { get; init; }
}
然后你會得到:
在此期間(C#8 和更早版本),您需要手動完成其中的一些操作,即
順便說一句,如果您剛剛從 Java 切換到 C#,您可能不知道structs
是瑣碎的“記錄”的值類型, 來自文檔:
結構最適合非常小的數據結構,這些數據結構主要包含在創建結構后不打算修改的數據。
盡管結構確實具有值相等的默認實現,但這可能是不可接受的,因為它只是hashcode中包含的第一個字段,並且如果要使用==
則需要提供operator ==的實現價值平等。
也就是說, 必須仔細考慮結構的用例,並且在 arrays 中使用時,通常應僅用於瑣碎的不可變記錄或出於性能原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.