Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: Tại sao lại phải ... = New abc(); ?

  1. #1
    Ngày gia nhập
    01 2011
    Bài viết
    15

    Mặc định Tại sao lại phải ... = New abc(); ?

    Em có nhập môn lập trình mấy bữa nay thì thấy có hơi ko hiểu chỗ "Tại sao lại phải

    Code:
    <Kiểu> <tênhàm> = New <kiểu>();
    rồi mới sử dụng <tênhàm> để thực thi ạ ?

    VD : Để load form mới ta dùng
    Code:
    Form2 f2 = new Form2();
    f2.show();
    Còn nếu em dùng
    Code:
    Form2 f2;
    f2.show();
    Thì bị lỗi ạ
    Đã được chỉnh sửa lần cuối bởi raymondle : 21-10-2011 lúc 11:23 AM.

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Bạn nói gì ko hiểu gì hết, cho xin miếng code minh họa đi.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    02 2011
    Nơi ở
    Bảo Lộc, Vietnam
    Bài viết
    68

    new dùng để tạo 1 thể hiện của lớp (Class).
    hoặc bạn có thể khai báo
    <tên class> <tên biến>;

  4. #4
    Ngày gia nhập
    01 2011
    Bài viết
    15

    Trích dẫn Nguyên bản được gửi bởi meoconlongvang Xem bài viết
    Bạn nói gì ko hiểu gì hết, cho xin miếng code minh họa đi.
    Đã sửa lại cho dễ hiểu rùi ạ

  5. #5
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Form2 là đối tượng, ko phải là hàm. new Form2() là tạo đối tượng Form2. Còn Form2 f2 chỉ là khai báo đối tượng chứ chưa có tạo. Mà chưa tạo đối tượng thì làm gì có đối tượng f2 để cho bạn gọi f2.Show(). CHính vì thế nó mới bị lỗi.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  6. #6
    Ngày gia nhập
    01 2011
    Bài viết
    15

    Mặc định Tại sao lại phải ... = New abc(); ?

    oh ra vậy, tks anh(chị,thím,bác) mèo :p

  7. #7
    Ngày gia nhập
    10 2010
    Bài viết
    3

    Trích dẫn Nguyên bản được gửi bởi raymondle Xem bài viết
    Em có nhập môn lập trình mấy bữa nay thì thấy có hơi ko hiểu chỗ "Tại sao lại phải

    Code:
    <Kiểu> <tênhàm> = New <kiểu>();
    rồi mới sử dụng <tênhàm> để thực thi ạ ?

    VD : Để load form mới ta dùng
    Code:
    Form2 f2 = new Form2();
    f2.show();
    Còn nếu em dùng
    Code:
    Form2 f2;
    f2.show();
    Thì bị lỗi ạ
    Chào bạn!
    Câu lệnh đó viết thì chỉ vài từ vậy, nhưng nó chứa đựng rất nhiều ý nghĩa, khi ta tìm hiểu nó mới thấy được cái hay.
    Ngoài những điều mà các bạn khác đã nói trên, mình xin bổ sung một ý nữa.
    Cách khai báo một đối tượng nói chung thì bao gồm có:
    1. Kiểu dữ liệu của đối tượng
    2. Tên đối tượng
    Đó là cách khai báo thông thường mà khi học C++ ta hay sử dụng
    Thành phần phía sau New Form2() ở trong C# là bắt buộc.
    Ở trong C++ có một chương nói về con trỏ. Bạn có thể hiểu được một cách tường tận tại sao lại có từ khóa New.
    Khi bạn khởi tạo một đối tượng hay một biến, mặc nhiên chương trình sẽ giành cho ta một khoảng bộ nhớ tương ứng với kiểu dữ liệu và kiểu đối tượng mà ta đã khai báo.
    Khi sử dụng xong đối tượng đó thì nó sẽ đi đâu?
    Nếu không có New thì nó sẽ cứ nằm yên và chiếm một khoảng bộ nhớ trong chương trình. Điều đó là rất hoang phí. Vì vậy từ New có ý nghĩa là khởi tạo và giải phóng bộ nhớ. Khi nào xài thì nó sẽ cấp phát, xài xong thì nó tự rút lui, để giải phóng bộ nhớ
    Đó chỉ là một trong hàng ngàn cái thú vị mà lập trình đem lại
    Thân!

  8. #8
    Ngày gia nhập
    02 2010
    Bài viết
    34

    Theo mình hiểu thì thế này:
    Form2 f2 = new Form2(); //Tạo 1 đối tượng Form2 và gán vào biến f2 của kiểu dữ liệu Form2
    f2.show();//

    Form2 f2 = new Form2();
    Có thể viết như sau
    Form2 f2;
    f2 = new Form2();

    Form2 f2;//Tạo 1 biến kiểu dữ liệu Form2
    f2.show();

  9. #9
    Ngày gia nhập
    01 2011
    Bài viết
    15

    Trích dẫn Nguyên bản được gửi bởi phamvandai1989 Xem bài viết
    Chào bạn!
    Câu lệnh đó viết thì chỉ vài từ vậy, nhưng nó chứa đựng rất nhiều ý nghĩa, khi ta tìm hiểu nó mới thấy được cái hay.
    Ngoài những điều mà các bạn khác đã nói trên, mình xin bổ sung một ý nữa.
    Cách khai báo một đối tượng nói chung thì bao gồm có:
    1. Kiểu dữ liệu của đối tượng
    2. Tên đối tượng
    Đó là cách khai báo thông thường mà khi học C++ ta hay sử dụng
    Thành phần phía sau New Form2() ở trong C# là bắt buộc.
    Ở trong C++ có một chương nói về con trỏ. Bạn có thể hiểu được một cách tường tận tại sao lại có từ khóa New.
    Khi bạn khởi tạo một đối tượng hay một biến, mặc nhiên chương trình sẽ giành cho ta một khoảng bộ nhớ tương ứng với kiểu dữ liệu và kiểu đối tượng mà ta đã khai báo.
    Khi sử dụng xong đối tượng đó thì nó sẽ đi đâu?
    Nếu không có New thì nó sẽ cứ nằm yên và chiếm một khoảng bộ nhớ trong chương trình. Điều đó là rất hoang phí. Vì vậy từ New có ý nghĩa là khởi tạo và giải phóng bộ nhớ. Khi nào xài thì nó sẽ cấp phát, xài xong thì nó tự rút lui, để giải phóng bộ nhớ
    Đó chỉ là một trong hàng ngàn cái thú vị mà lập trình đem lại
    Thân!
    Em cảm ơn anh ạ. Bài viết rất có ý nghĩa

Các đề tài tương tự

  1. Trả lời: 6
    Bài viết cuối: 31-07-2013, 07:51 PM
  2. Mỹ phẩm Thu Huyền: Bộ mỹ phẩm trị nám, tàn nhang Bride Korea - call 0906.260.160
    Gửi bởi kimkim8910 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 12-03-2012, 10:49 PM
  3. phần merge module bị thiếu crystal report phải làm thế nào ?
    Gửi bởi manhluc88 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 06-01-2011, 01:11 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn