基本上:
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'在当前上下文中不存在
答案 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());
}
}
问候。