我的代码是这样的......
class Transaction
{
public class Date
{
public int day, month, year;
}
Date d;
double amount;
long acc_no;
string action;
}
我们如何访问日期d。
答案 0 :(得分:1)
我们如何访问日期d
访问任何对象的任何类级别成员的方式相同。
在类Transaction
的任何实例中,您可以将其作为类级别成员访问:
this.d
从Transaction
的实例外部,您无法访问d
(也不应该),因为它是私人成员。 (默认情况下,C#成员是私有的,除非另有声明。)
在Date
的实例中,无法保证您处于Transaction
实例的上下文中,因此无法直接访问该成员。 (只是因为它是一个嵌套类并不能保证它总是在那个结构中使用。)并不是因为d
是Date
的实例所以它真的很重要所以如果你在Date
然后它只需要访问自己。
答案 1 :(得分:1)
如评论中提到的,这通常不是一个好主意,但您可以访问它。您可以从类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
}
}
答案 2 :(得分:0)
命名空间银行业务 {
公共类交易 { 公共课日期 { public int day,month,year; } public Date date = new Date(); 公开双倍金额; 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();
}
}
此代码的问题在于输出控制台中没有显示日期 我已经存储了这个12-02-1994的日期