2016-08-30 97 views
0

編輯:引用的重複是不是一個選項,因爲它是5年前(和我的參考6年前)回答,我希望有一些更近期做了這個,而不是比手工製作的代碼周圍工作。所引用的重複也不是一個完全聲明性的解決方案。優雅的方式來控制字符串屬性的長度

我有一個字符串屬性關閉一個類只允許是一個最大長度。從德爾福背景的,你能定義一個自定義類型:

type TString10 = string[10]; 
type TString50 = string[50]; 

,然後使用它作爲一個屬性定義的一部分:

property TString10 MyString 
property TString10 MyOtherString 
property TString50 YetOtherString 
property TString50 AndTheLastOne 

似乎有no declarative equivalent in C#,我知道的?所以會出現我唯一的選擇是:

  1. 寫手動屬性setter或吸氣劑(即截斷到指定的長度)
  2. 調用,檢查屬性,以確保它們的長度是根據需要
驗證方法

或者還有其他方法來聲明性地強制字符串屬性的長度?

回答

1

我覺得選項1 & 2幾乎覆蓋它;他們是我曾經使用過的唯一兩個。

我曾經做過的最奇妙的方式是創建可用於修飾屬性的屬性,然後使用Validation方法根據實際值檢查字符串長度。這些類能夠驗證自己,所以一切都被封裝在類本身中。

這也意味着您仍然可以使用自動屬性。

相關問題