2 回答
TA贡献1843条经验 获得超7个赞
两个问题:
1)testConsumer是Uri类的成员,而不是RegisterUri类的成员,因此无法从类中运行的代码的上下文中访问它RegisterUri。
2)即使你解决了这个问题,你也会testConsumer在它被实例化之前尝试使用它。当属性值依赖于在实例化类之前未设置的变量时,您不能为属性设置硬编码的默认值。
目前尚不清楚您是否打算testConsumer居住在RegisterUri,或者您打算RegApplicantInfo1居住在Uri,或者您打算RegisterUri从Uri(而不仅仅是作为一个内部类)继承,以便它能够从其父级访问该属性。
因此,这是消除错误的一种方法——在这种情况下,通过使用继承。RegisterUri现在继承自Uri,并且testConsumer现在protected是子类可以访问的。似乎这可能是合乎逻辑的方法,但我无法知道这是否是您真正想要的行为(您只是根据看到错误来描述问题,而不是根据您希望实现的目标)。
public class Users
{
public class TestConsumer
{
public string id
{
get;
}
= "XXXXXXXX";
}
}
public class Uri
{
protected Users.TestConsumer testConsumer;
private Context Context;
public Uri(Context context)
{
Context = context;
testConsumer = new Users.TestConsumer();
}
}
public class RegisterUri : Uri
{
public RegisterUri(Context context): base (context)
{
}
public string RegApplicantInfo1
{
get
{
return $"/v1/consumer/applications/{testConsumer.id}/register-applicant-contact-information";
}
}
}
演示:https ://dotnetfiddle.net/A6Z41a
TA贡献1821条经验 获得超4个赞
我猜这个代码甚至不会编译......错误在代码的第二部分
它应该是这样的:不确定第一部分,你想在哪里设置变量值?
public class Users
{
public class TestConsumer
{
public string id { get; }
}
}
public class Uri
{
private Users.TestConsumer testConsumer;
//you are missing this declaration
private Context context;
public Uri(Context context)
{
this.context = context; <----- here if you try to assign context to Context class, it will give error and ask for a reference
testConsumer = new Users.TestConsumer();
}
}
- 2 回答
- 0 关注
- 94 浏览
添加回答
举报