类组织:如何在组织文件夹中的类时调用其他类中的实例成员

本文关键字:调用 实例 成员 其他 文件夹 | 更新日期: 2023-09-27 18:14:06

我正在尝试将我的类组织到如下图所示的文件夹中:

问题是当我运行主程序时,我什么也得不到,我正在访问数据成员,但无法获得它们的值。

有三个文件夹:Asset, TransitMembers

Asset是根目录。成员包含我需要在整个程序中访问的所有变量,而Transit包含其他方法或数据库类。

代码:

namespace ClassObjects.Asset.Members
{
    class DataMembers
    {
        private string instanceMemberA;
        private string instanceMemberB;
        public void SetValues(string inputA, string inputB)
        {
            this.instanceMemberA = inputA;
            this.instanceMemberB = inputB;
        }
        public string MemberA
        {
            get
            {
                return this.instanceMemberA;
            }
        }
        public string MemberB
        {
            get
            {
                return this.instanceMemberB;
            }
        }
    }
}

交通类:

namespace ClassObjects.Asset.Transit
{
    class Transit
    {   
       //Example here
        public void DoNothing()
        {
         Asset.Members.DataMembers dataMember = new Asset.Members.DataMembers();
        //Pass values to datamember
            dataMember.SetValues("ValueA", "ValueB");
        }
    }
}
主要方法:

namespace ClassObjects
{
    class Program
    {
      static void Main(string[] args)
       {
       Asset.Members.DataMembers dataMember = new Asset.Members.DataMembers();
    //Unable to print the values sent to the data members from the Transit class.
    Console.WriteLine(dataMember.MemberA);
     Console.ReadKey();
        }
    }
}

类组织:如何在组织文件夹中的类时调用其他类中的实例成员

我认为你需要学会使用调试器,这样你就可以弄清楚什么时候发生了自己!如果你想编程,这是一项非常重要的技能。

无论如何,在你的例子中:你的主程序只执行2步:

  1. It new DataMembers()。这将调用默认构造函数(您没有),这意味着您的所有字段都将具有默认值。对于字符串,它是null

  2. 打印dataMember.MemberA。正如我所说的,这个值是null, null在你的控制台上什么也不打印。

这是预期行为。我猜你在某个地方错过了SetValues()电话。顺便说一句,你的Transit类从来没有使用过。

您的程序运行正常。你的意思是让Transit返回一个数据集合吗?

public Asset.Members.DataMembers DoNothing()
{
    var dataMember = new Asset.Members.DataMembers();
    // Pass values to datamember
    dataMember.SetValues("ValueA", "ValueB");
    // Return values to the caller
    return dataMember;
}

然后,在程序中存储该方法的结果并打印出来。

  static void Main(string[] args)
   {
        Asset.Members.DataMembers dataMember;
        dataMember = new Transit().DoNothing();
        Console.WriteLine(dataMember.MemberA);
        Console.ReadKey();
    }