将变量发送到另一个类

我试图将变量id 从一个类发送到另一个类,由于某种原因我得到错误 -> An Object reference is required。


返回错误的字符串


 public string RegApplicantInfo1 { get; } = $"/v1/consumer/applications/{testConsumer.id}/register-applicant-contact-information";

我不知道为什么逻辑不起作用,因为类似的功能对我有用。


用户.cs


public class Users

{

    public class TestConsumer

    {

        public string id { get; } = "XXXXXXXX";

    }

}

URI.cs


public class Uri

    {


    private Users.TestConsumer testConsumer;



    public Uri(Context context)

    {

        Context = context;

        testConsumer = new Users.TestConsumer();

    }


        public class RegisterUri

        {

                public string RegApplicantInfo1 { get; } = $"/v1/consumer/applications/{testConsumer.id}/register-applicant-contact-information";

        }

    }


catspeake
浏览 95回答 2
2回答

蓝山帝景

两个问题: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

收到一只叮咚

我猜这个代码甚至不会编译......错误在代码的第二部分它应该是这样的:不确定第一部分,你想在哪里设置变量值?public class Users{&nbsp; &nbsp; public class TestConsumer&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; public string id { get; }&nbsp; &nbsp; }}public class Uri{&nbsp; &nbsp;private Users.TestConsumer testConsumer;&nbsp; &nbsp;//you are missing this declaration&nbsp; &nbsp;private Context context;&nbsp; &nbsp;public Uri(Context context)&nbsp; &nbsp;{&nbsp; &nbsp; &nbsp;this.context = context; <----- here if you try to assign context to Context class, it will give error and ask for a reference&nbsp; &nbsp; &nbsp;testConsumer = new Users.TestConsumer();&nbsp; &nbsp;}}
打开App,查看更多内容
随时随地看视频慕课网APP