考慮下面的代碼:如何追加屬性屬性常量值
[Category("USER")]
public class Permissions
{
public const string Create= "USER-CREATE";
public const string Edit= "USER-EDIT";
.
.
}
我想從常量的值刪除USER-
一部分,因爲我通過Category
屬性指定。在這種情況下,有什麼方法可以在撥打Permissions.Create
時獲得USER-CREATE
的值?如果不是,如何實現與另一種方法相同的功能?
編輯
我,因爲我將與屬性要用就用常量的值。
例如:[Attribute(Permissions.Create)]
編輯對我的真實情況後@HimBromBeere
新的代碼提示
[Permissions(Modules.Administration, HomePermissions.Category)]
public class UserPermissions
{
private const string Category = "USER";
private const string Prefix = Modules.Administration + "-" + Category + "-";
public const string Create = Prefix + "CREATE";
public const string Edit = Prefix + "EDIT";
}
您不能更改'const'值,這就是爲什麼它被稱爲常量。但我不確定你想要什麼。你想從常量中刪除'「USER」',但是當*訪問那個常量時仍然會得到''USER-CREATE''?你將不得不將類名稱(從屬性中讀取)與'const'連接起來,這對我來說聽起來有點矯枉過正。 – HimBromBeere
如果你有其他程序集引用的常量值,那麼最好使用'static readonly',因爲如果你使用'const',那麼在編譯相關程序集時可能會內聯這個值,這會導致意想不到的後果。如果您確實需要*,只能使用'public const' *(例如,用於Attribute構造函數)。 – Dai