2

次のメソッドがあり、呼び出された列からデータを取得し、ApptDateTimeそれをパブリック クラスに設定して、値を別のメソッドに渡すことができるようにしようとしています。

これは、パブリック クラスで値を設定しようとしていたものです。

public class ApptData
{
    public DateTime _currentAppointment { get; set; }
}

私は値を選択し、_currentAppointmentそれをから呼び出すことができるようにしたいし、public class ApptDataそれをメソッドに渡します。

元: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();
            // ...
        }
     }
4

3 に答える 3

3

の新しいインスタンスをセットの値とともに渡そうとする場合はApptData、次のようなものが必要になります。LoadHistoryDataRowView

history.LoadHistory(new ApptData()
   {
      _currentAppointment = Convert.ToDateTime(row["ApptDate"])
   }, daysOfHistory);

また、プロパティ、フィールド、またはメソッドをアンダースコアで開始しないことを強くお勧めします。publicそれはただ奇妙です。

于 2013-07-25T19:13:35.297 に答える
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 クラスが表示されている場所からそのプロパティの値にアクセスできることです。もちろん、一度に処理できる値は 1 つだけです。以前の読者が提案したことを行い、すべてをインスタンス化されたオブジェクトとして保持します。

于 2013-07-25T19:31:23.960 に答える