문제

아래 코드를 캡슐화하는 방법 (리포 터링이 필요합니다)

    public class mycollection
{
        private DateTime tarih;
        private int sira;
        private int visitingcount;

        public DateTime TARIH { get { return tarih; } set { tarih = value; } }
        public int SIRA { get { return sira; } set { sira = value; } }
        public int VISITINGCOUNT { get { return visitingcount; } set { visitingcount = value; } }
}

아래 에서이 수업을 사용했습니다

DataRow[] rows = dsChart.Tables[0].Select("TARIH>='" + DateGap1 + "' and TARIH<='" + DateGap2 + "'");

                                list = new List<mycollection>();
                                foreach (DataRow dr in rows)
                                {
                                    mycollection mycol = new mycollection();
                                    mycol.TARIH = Convert.ToDateTime(dr["TARIH"].ToString());
                                    mycol.SIRA = Convert.ToInt32(dr["SIRA"].ToString());
                                    mycol.VISITINGCOUNT = Convert.ToInt32(dr["VISITINGCOUNT"].ToString());
                                    list.Add(mycol);
                                }

나는 그렇게 필요합니다 :

  public static void LoadDepartman(string departmanName)
        {
            List<StuffDepartman> li = new List<StuffDepartman>();
            GetDepartman departman = new GetDepartman();
            DataSet ds = departman.GetDepartmanA(departmanName);
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                li.Add(new StuffDepartman
                {
                    Name = dr["Name"].ToString(),
                    SurName = dr["SurName"].ToString(),
                    Address = dr["Address"].ToString(),
                    Phone = dr["Phone"].ToString(),
                    DepartmanName = dr["DepartmanName"].ToString(),
                    Salary =int.Parse( dr["Salary"].ToString()),
                    Married = dr["Married"].ToString()
                }
                );
            }
            HttpContext.Current.Session["Stuffs"] = li;

        }

올바른 솔루션이 없습니다

다른 팁

(나는 처음 두 예제가 세 번째와 관련이있는 방법을 완전히 이해하지 못합니다 ... 그들은 공통적으로 공통점을 공유하지 않는 것 같습니다)

그래서 현재는 무엇이 깨지고 있습니까? 내가 볼 수있는 가장 큰 문제는 확실하게 사용할 수 있습니다 Session (다른 백엔드 구현을 사용하면) 항목은 직렬화 가능해야합니다 (Var BinaryFormatter), 그러나 그것은 마킹만큼 간단 할 수 있습니다. mycollection ~와 함께 [Serializable].

정보를 위해 mycollection 무언가에 대한 혼란스러운 이름입니다 행 엔터티, 실제 컬렉션이 아니라 C# 3.0이 있으면 자동으로 구현 된 속성으로 조금 단순화 할 수 있습니다.

[Serializable]
public class SomeSensibleName
{
    public DateTime Tarih {get;set;}
    public int Sira {get;set;}
    public int VisitCount {get;set;}
}

하지만; 이것이 바로 변경 될지 여부는 (코드에서) 명확하지 않습니다. 현재 무슨 일이 일어나고 있는지 명확히 할 수 있습니까?

내가 올바르게 이해한다면 이것은 당신이 찾고있는 리팩토링입니다.

DataRow[] rows = dsChart.Tables[0].Select("TARIH >='" + DateGap1 + "' and TARIH <='" + DateGap2 + "'");
List<mycollection> list = new List<mycollection>();
foreach (DataRow dr in rows)
{
    list.Add(new mycollection
    {   
      TARIH = Convert.ToDateTime(dr["TARIH"].ToString());
      SIRA = Convert.ToInt32(dr["SIRA"].ToString());
      VISITINGCOUNT = Convert.ToInt32(dr["VISITINGCOUNT"].ToString());
    });
}

이 작업이 작동하려면 .NET Framework 3.x (vs2008)를 실행해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top