所以我有嵌套的类型类,如下所示:
namespace MyNamespace
{
public class User
{
private int id = 0;
private string userId = "";
private string userPassword = "";
public int Id
{
get { return id; }
set { id = value; }
}
public string UserId
{
get { return userId; }
set { userId = value; }
}
public string UserPassword
{
get { return userPassword; }
set { userPassword = value; }
}
public User()
{
id = 0;
userId = "";
userPassword = "";
}
public static class SignonInfo
{
private static string sesstoken = "";
private static DateTime sessstart = new DateTime();
public static string SessToken
{
get { return sesstoken; }
set { sesstoken = value; }
}
public static DateTime SessStart
{
get { return sessstart; }
set { sessstart = value; }
}
}
}
}
我的最终目标是能够像这样访问嵌套的静态类:
User user = new User();
string token = user.SignonInfo.SessToken;
我试图避免像这样实例化这个类:
User.SignonInfo user = new User.SignonInfo()
我需要能够访问User和SignonInfo类的属性。
有人可以帮助我走上正轨,或者告诉我,我做错了吗?
TIA
答案 0 :(得分:0)
问题在于它是一个静态类,因此“实例”无法访问它。这是一件好事,因为它可以防止全局状态伪装成封装良好的对象。
我建议使嵌套类非静态,并让User
类根据调用者的需要创建一个实例(可能添加public SignonInfo GetSignonInfo()
方法。)
答案 1 :(得分:-1)
您正在尝试访问嵌套类,就像它是外部类实例的成员一样。
更改
User.SignonInfo.SessToken;
到
{{1}}
请注意,每个外部实例都没有获得静态嵌套类型的实例,整个外部类只有一个实例。