Announcement

Collapse
No announcement yet.

hỏi về vấn đề thừa kế

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [C#] hỏi về vấn đề thừa kế

    mình có form1 chứa các hàm seach(),insert() .....giờ mình tạo form2 làm sao để form 2 cũng sử dụng được mấy hàm đó........mong mọi người giúp đỡ

  • #2
    tốt nhất tạo 1 Interface chứa mấy hàm search(), insert()...Rồi cho cả 2 form đều thừa kế cái Interface đó
    Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
    Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
    Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
    Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
    ...

    Comment


    • #3
      Originally posted by 10520303 View Post
      mình có form1 chứa các hàm seach(),insert() .....giờ mình tạo form2 làm sao để form 2 cũng sử dụng được mấy hàm đó........mong mọi người giúp đỡ
      để các hàm đó trong phạm vi là public
      nếu là thừa kế thì cứ gọi như đó là một hàm của form2 (form2 thừa kế form1) hoặc override nó rồi sử dụng. còn không thì khai báo 1đối tượng Form1 trong form2 rồi gọi bình thường

      form1 frm1=new form1();
      frm1.search();
      frm1.insert();
      ...
      Last edited by 09520133; 19-04-2012, 17:18.
      -----------------------------
      Mai Văn Khải
      Software Engineering, University Information of Technology
      a07d26eb5cbc98f77b36a461eb629456

      Comment


      • #4
        em cũng khai báo 1 form1 trong form2 mà sao nó chẳng được....không báo lỗi nhưng chạy thì không ra được như minh mong muốn...híc

        Comment


        • #5
          Tổng hợp coi bạn cần những phương thức nào mà nó có thể có ở cả mấy form, rồi tạo 1 cái interface khai báo sẵn mấy cái phương thức đó. Mấy form sau chỉ kế thừa từ nó mà thôi
          Waiting for the day my nickname get painted black and underlined ...!

          Comment


          • #6
            Originally posted by 08520099 View Post
            Tổng hợp coi bạn cần những phương thức nào mà nó có thể có ở cả mấy form, rồi tạo 1 cái interface khai báo sẵn mấy cái phương thức đó. Mấy form sau chỉ kế thừa từ nó mà thôi
            Không phải, ý bạn kia muốn thực thi phương thức của form1 từ trong form2 kia
            Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
            Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
            Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
            Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
            ...

            Comment


            • #7
              em miêu tả rõ xem nào! anh nghĩ chẳng liên quuan gì đến kế thừa
              có thể dùng delegate (em tự tìm hiểu thêm nha) để làm. hoặc khai báo vài phương thức cần thiết cũng được
              -----------------------------
              Mai Văn Khải
              Software Engineering, University Information of Technology
              a07d26eb5cbc98f77b36a461eb629456

              Comment


              • #8
                Originally posted by 08520195 View Post
                Không phải, ý bạn kia muốn thực thi phương thức của form1 từ trong form2 kia
                đúng rồi........nói chung là em đang làm cái từ điển......form QuickView của em muốn sử dụng lại hàm Search() của form từ điển chính ...

                Comment


                • #9
                  Originally posted by 10520303 View Post
                  mình có form1 chứa các hàm seach(),insert() .....giờ mình tạo form2 làm sao để form 2 cũng sử dụng được mấy hàm đó........mong mọi người giúp đỡ
                  Originally posted by 09520133 View Post
                  để các hàm đó trong phạm vi là public
                  nếu là thừa kế thì cứ gọi như đó là một hàm của form2 (form2 thừa kế form1) hoặc override nó rồi sử dụng. còn không thì khai báo 1đối tượng Form1 trong form2 rồi gọi bình thường

                  form1 frm1=new form1();
                  frm1.search();
                  frm1.insert();
                  ...
                  Cách này được nhưng không hay, nếu làm không khéo thì sẽ mất tính bao đóng của hướng đối tượng.

                  Originally posted by 08520099 View Post
                  Tổng hợp coi bạn cần những phương thức nào mà nó có thể có ở cả mấy form, rồi tạo 1 cái interface khai báo sẵn mấy cái phương thức đó. Mấy form sau chỉ kế thừa từ nó mà thôi
                  Bạn chủ topic nói là sử dụng lại code của form1 thì khai báo interface rất mất thời gian. Nên làm 1 class đàng hoàng rồi sử dụng, static class nếu sử dụng nhiều.

                  Originally posted by 08520195 View Post
                  Không phải, ý bạn kia muốn thực thi phương thức của form1 từ trong form2 kia
                  Nếu vậy thì sử dụng delegate.

                  Comment


                  • #10
                    Originally posted by 08520195 View Post
                    tốt nhất tạo 1 Interface chứa mấy hàm search(), insert()...Rồi cho cả 2 form đều thừa kế cái Interface đó
                    vote cho ý kiến của anh Lâm, cách này là ổn nhất
                    Hãy là chính mình!

                    Comment


                    • #11
                      Originally posted by 09520109 View Post
                      vote cho ý kiến của anh Lâm, cách này là ổn nhất
                      Bạn nên xem lại interface là gì nhé!

                      Comment


                      • #12
                        Originally posted by 10520303 View Post
                        em cũng khai báo 1 form1 trong form2 mà sao nó chẳng được....không báo lỗi nhưng chạy thì không ra được như minh mong muốn...híc
                        Mình nghĩ là do nó có liên quan đến một số thuộc tính của thằng form1 trong hàm Search() của bạn, khi tạo mới form1 thì các thuộc tính này chưa được gán giá trị.
                        Bạn thử khai báo constructor trong form2
                        Code:
                        public Form1 parent;
                        
                        public Form2(Form1 _parent)
                        {
                               this.parent = _parent;
                        }
                        Bên form1 khi tạo mới Form2 bạn gọi constructor
                        Code:
                               form2 = new Form2(this);
                        Khi sử dụng bạn gọi
                        Code:
                        form2.parent.Search();

                        Comment


                        • #13
                          a Ân .....form2.parent.Search(); không gọi được mã này ra..............

                          Comment


                          • #14
                            Originally posted by 10520303 View Post
                            a Ân .....form2.parent.Search(); không gọi được mã này ra..............
                            (form2.Parent as Form1).Search()
                            Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
                            Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
                            Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
                            Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
                            ...

                            Comment


                            • #15
                              Originally posted by 10520303 View Post
                              a Ân .....form2.parent.Search(); không gọi được mã này ra..............
                              Bạn thử làm như anh Lâm nói coi, không được thì share code mình xem thử?

                              Comment

                              LHQC

                              Collapse
                              Working...
                              X