In that specific case, use an Enum. There will be no magic strings and if the Enum changes (in a way that would break the magic strings solution), the app will no longer compile.
public enum ProfilePermissions
{
View,
Create,
Edit,
Delete
}
Then you can simply have:
if(user.HasRight(ProfilePermissions.View)) { }
You could also use a class, but then you limit yourself when it comes to more complex scenarios. For instance, a simple change of the Enumeration to something like:
public enum ProfilePermissions
{
View = 1,
Create = 2,
Edit = 4,
Delete = 8
}
Would allow you to use bitwise operators for more complex permissions (for example, a situation where a user needs either Create or Delete):
if(user.HasRight(ProfilePermissions.Create | ProfilePermissions.Delete));
|
, for example by using the values 0x1, 0x2, 0x4, etc... – Cryptonymous