我有以下结构,并且想要一个具有以下两个类的好处的解决方案。第一类是使用字符串和强类型成员:
public class UserSessionData
{
private string Get(string key)
{
throw new NotImplementedException("TODO: Get from external source");
}
private void Set(string key, string value)
{
throw new NotImplementedException("TODO: Set in external source");
}
public string CustomerNumber {
get { return Get("CustomerNumber"); }
set { Set("CustomerNumber", value); }
}
public string FirstName {
get { return Get("FirstName"); }
set { Set("FirstName", value); }
}
public string LastName {
get { return Get("LastName"); }
set { Set("LastName", value); }
}
// ... a couple of hundreds of these
}
我可以想象另一种方法是带有参数的Get
and方法。这是第二课:Set
enum
public class UserSessionData
{
public enum What {
CustomerNumber, FirstName, LastName, // ...
}
public string Get (What what) { return MyExternalSource(what); }
public string Set (What what, string value) { return MyExternalSource(what); }
}
但是 #2 类的消费者方面并不漂亮:
UserSessionData.Get(UserSessionData.What.CustomerNumber)
将其与第一类进行比较:UserSessionData.CustomerNumber
在我的第一个类示例中是否有调用 Get 和 Set 方法的强类型方法?换一种说法:我如何从这两个类中获得好处,即强类型成员的可维护性和美观的语法?