为类设置返回值

时间:2013-07-25 19:09:17

标签: c# c#-4.0

我有以下方法,我试图从名为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();
            // ...
        }
     }

3 个答案:

答案 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类可见的任何位置访问该属性的值。当然,您一次只能处理一个值。我会做以前读者建议的内容,并将所有内容都作为实例化对象。