我们可以将另一个类的对象声明为数据成员吗

本文关键字:声明 对象 数据成员 另一个 我们 | 更新日期: 2023-09-27 18:21:53

我的代码是这样的。。。

class Transaction
{
    public class Date
    {
        public int day, month, year;
    }
    Date d;
    double amount;
    long acc_no;
    string action;
}

我们如何访问日期d.

我们可以将另一个类的对象声明为数据成员吗

我们如何访问日期d

访问任何对象的任何类级别成员的方式相同。

在类Transaction的任何实例中,您都可以作为类级成员访问它:

this.d

Transaction实例之外,您不能访问d(也不应该访问),因为它是私有成员。(除非另有声明,否则默认情况下C#成员是私有的。)

Date的实例中,不能保证您处于Transaction实例的上下文中,因此无法直接访问该成员。(仅仅因为它是一个嵌套类并不能保证它总是在该结构中使用。)这并不重要,因为dDate的一个实例,所以如果你在Date中,那么它只需要访问自己。

如注释中所述,这通常不是一个好主意,但您可以访问它。您可以从Transaction类中的任何位置访问它,但不能在它之外访问,除非您使用方法或属性。

class Transaction
{
    public class Date
    {
        public int day, month, year;
    }
    Date d;
    double amount;
    long acc_no;
    string action;

    public Date GetDate()
    {
        return d; // Access Date d by using a method
    }
}

命名空间银行{

公共类事务{公共类日期{公共int日、月、年;}public日期=新日期();公开双倍金额;public long acc_no;公共字符串操作;}

class Program
{
    static void Main(string[] args)
    {
        List<Transaction> transaction = new List<Transaction>();
        StreamReader sr = new StreamReader("transaction.csv");
        string data = sr.ReadLine();
        while (data != null)
        {
            string[] dataarray = data.Split(',');
            string[] date_split = dataarray[0].Split('-');
            Transaction tran_obj = new Transaction();
            tran_obj.date.day = int.Parse(date_split[0]);
            tran_obj.date.month = int.Parse(date_split[1]);
            tran_obj.date.year = int.Parse(date_split[2]);
            tran_obj.acc_no = long.Parse(dataarray[1]);
            tran_obj.amount = double.Parse(dataarray[2]);
            tran_obj.action = dataarray[3];
            transaction.Add(tran_obj);
            data = sr.ReadLine();
        }
        Console.WriteLine("Please enter the account number for which you are looking for");
        long new_acc_no = long.Parse(Console.ReadLine());
        foreach (Transaction t in transaction)
        {
            if (t.acc_no == new_acc_no)
            {
                Console.WriteLine(t.amount);
                Console.WriteLine(t.date);
                Console.WriteLine(t.action);
            }
        }
        string s = Console.ReadLine();
    }
    string s = Console.ReadLine();
}

}

该代码的问题是在输出控制台中没有显示日期我已经存储了这样的日期1994年2月12日