我有以下方法,我试图从名为ApptDateTime
的列中获取数据并将其设置为公共类,以便我可以将值传递给另一个方法。
这就是我试图在公共类中设置值:
public class ApptData
{
public DateTime _currentAppointment { get; set; }
}
我选择了值_currentAppointment
,我希望能够从public class ApptData
调用它,然后将其传递给方法。
EX:history.LoadHistory(ApptData appointment, daysOfHistory);
private void dgvPendingSB_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.AddedItems.Count > 0)
{
DataRowView row = (DataRowView)e.AddedItems[0];
int accNum = -1;
int resourceId = Convert.ToInt32(row["ResourceId"]);
int locationId = Convert.ToInt32(row["LocationId"]);
int patientId = Convert.ToInt32(row["PatientId"]);
_currentAppointment = Convert.ToDateTime(row["ApptDate"]);
m_objPatient = Convert.ToInt32(row["PatientId"]);
_stringPatientName = row["PatientName"].ToString();
// ...
}
}
答案 0 :(得分:3)
如果您尝试将ApptData
的新实例传递到LoadHistory
并使用DataRowView
集中的值,则需要类似:
history.LoadHistory(new ApptData()
{
_currentAppointment = Convert.ToDateTime(row["ApptDate"])
}, daysOfHistory);
此外,我强烈建议您使用下划线不启动public
属性,字段或方法。这只是怪异的。
答案 1 :(得分:0)
您需要实例化ApptData
的实例,设置__currentAppointment
的值,然后将其传递给LoadHistory
方法,如下所示:
var theAppointmentData = new ApptData();
theAppointmentData._currentAppointment = Convert.ToDateTime(row["ApptDate"]);
然后您可以调用LoadHistory
方法,如下所示:
history.LoadHistory(theAppointmentData, daysOfHistory);
答案 2 :(得分:0)
不确定我理解你的问题。你想使用类本身而不是实例(你的意思是“公共类吗?”)?如果是这样的话......您可以使用默认对象来携带您的财产:
public class ApptData
{
private static ApptData _defaultInstance;
public static ApptData Default
{
if (_defaultInstance == null)
{
_defaultInstance = new ApptData();
}
return _defaultInstance;
}
public DateTime CurrentAppointment { get; set; }
}
您可以像这样访问该媒体资源:
ApptData.Default.CurrentAppointment = Convert.ToDateTime(row["ApptDate"]);
history.LoadHistory(ApptData.Default, daysOfHistory);
但对我而言,传递数据是一种非常尴尬的方式。唯一可以使用的是您可以从ApptData类可见的任何位置访问该属性的值。当然,您一次只能处理一个值。我会做以前读者建议的内容,并将所有内容都作为实例化对象。