[CallerLineNumber]
是一個偉大的語言功能。但我用它來automatically order class properties as their declaration order。但是,當用戶使用此參數調用函數或構造函數時,用戶能夠向其提供值,這完全超過了自動生成的目的。目前,我必須命名這個參數,如_doNotSet
,作爲提示調用者不設置此參數。如何使用[CallerLineNumber]強制參數爲只讀?
我該如何強制它只能讀取,或者甚至更好地將它從函數簽名中隱藏起來?
我想的另一個想法是將參數標記爲[Obsolete]
,所以通過使用它,編譯器會發出警告。不幸的是,ObsoleteAttribute
不是針對參數,所以我不能標記參數。
這可能是一個問題,如果它實際上與「用戶」相關,但實際上這個分鐘問題只與潛在的編碼人員有關,而且文檔評論無法處理。 – TyCobb
這會揹負編譯器對可選參數的支持,這是一個讓編譯器生成值的硬性要求。沒有可能的語法讓你快樂,不缺乏///選項來教育用戶。 –