为了账号安全,请及时绑定邮箱和手机立即绑定

将变量发送到另一个类

将变量发送到另一个类

C#
catspeake 2022-10-23 15:11:51
我试图将变量id 从一个类发送到另一个类,由于某种原因我得到错误 -> An Object reference is required。返回错误的字符串 public string RegApplicantInfo1 { get; } = $"/v1/consumer/applications/{testConsumer.id}/register-applicant-contact-information";我不知道为什么逻辑不起作用,因为类似的功能对我有用。用户.cspublic class Users{    public class TestConsumer    {        public string id { get; } = "XXXXXXXX";    }}URI.cspublic 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";        }    }
查看完整描述

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


查看完整回答
反对 回复 2022-10-23
?
收到一只叮咚

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();

   }

}


查看完整回答
反对 回复 2022-10-23
  • 2 回答
  • 0 关注
  • 94 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信