如何引用来自不同类的对象[C#]

时间:2017-03-15 22:23:53

标签: c#

基本上:

class a 构建用户帐户对象

b类实例化帐户对象并保留

class c 包含在类d

中引用的方法

class d 想要从类b中引用c类方法的用户帐户

//constructs object
public class A
{
    public string firstname;
    public string lastname;

    public A(string givenname, string surname)
    {
        firstname = givenname;
        lastname = surname;
    }
}

//instantiates object from class A
public static class B
{
    public static void Accounts()
    {
        A PBeenis = new A("Paul", "Beenis");
    }
}

//holds a method that displays info about object
public static class C
{
    public static void Get_UserInfo(ref A name)
    {
        Console.WriteLine("Name: {0} {1}", name.firstname, name.lastname);
    }
}

//calls a method in class C and references object from class B
public static class D
{
    static void Main(string[] args)
    {
        C.Get_UserInfo(ref PBeenis);
    }
}

如何使用D类中C类的方法从B类引用PBeenis对象?

C.Get_UserInfo(ref PBeenis);

CS0103名称' Pbeenis'在当前上下文中不存在

2 个答案:

答案 0 :(得分:0)

您应该阅读范围。

从代码的那一部分引用Pbeenis是不可能的,因为它超出了范围。

要克服这个问题,您需要一种在范围内获取引用的方法。

例如,将Pbeenis作为A类的属性并像以下一样访问它:

B.Pbeenis

希望有所帮助。

答案 1 :(得分:0)

不确定您要实现的目标,但为什么不在方法之外进行实例化? 也不需要使用ref关键字。

public static class B
{
    public static A PBeenis = new A("Paul", "Beenis");
}

//calls a method in class C and references object from class B
public static class D
{
    static void Main(string[] args)
    {
        C.Get_UserInfo(B.PBeenis);
    }
}

其他选项是返回方法

中的对象
//instantiates object from class A
public static class B
{
    public static A Accounts()
    {
        return new A("Paul", "Beenis");
    }
}
//calls a method in class C and references object from class B
public static class D
{
    static void Main(string[] args)
    {
        C.Get_UserInfo(B.Accounts());
    }
}

问候。