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

Đề tài: Vử lý con trỏ trong C#

  1. #1
    Ngày gia nhập
    11 2007
    Bài viết
    0

    Question Vử lý con trỏ trong C#

    Tôi có đoạn code sau. Nó được viết bằng C++
    Code:

    Visual C# Code:
    1. struct ENTRECT {
    2.   double Xcen;
    3.   double Ycen;
    4.   double Zcen;
    5.   double Width;
    6.   double Height;
    7.   double RotAngle;
    8. };
    9.  
    10.  
    11. void CALLBACK EventCEntDisplay (int hDwg, int hEnt)
    12. {
    13.   ENTRECT data;
    14.   BOOL  bFill;
    15.   int  et = CadCustomGetType( hEnt );
    16.   if (et==CENT_RECT){
    17.     // rectangle    
    18.     CadCustomGetData( hEnt, [COLOR="Red"][B]&data[/B][/COLOR] ); // báo lỗi ở đây vì hàm này yêu cầu adCustumData(int, ref int)
    19.     bFill = CadEntityGetFilled( hEnt );
    20.     DrawRect( data, bFill );
    21.   }
    22. }
    23.  
    24. void DrawRect (const [B][I][COLOR="Red"][I][I]ENTRECT& data[/I][/I][/COLOR][/I][/B], BOOL bFill)
    25. {
    26.   double x[5],y[5], z=0.0;
    27.   int i;
    28.  
    29.   x[0] = x[4] = x[3] = data.Xcen - data.Width / 2.0;
    30.   y[0] = y[4] = y[1] = data.Ycen - data.Height / 2.0;
    31.   x[1] = x[2] = x[0] + data.Width;
    32.   y[2] = y[3] = y[0] + data.Height;
    33.   for (i=0; i<5; i++){
    34.     vuRotatePoint([B][COLOR="Red"] x+i, y+i, &z[/COLOR][/B], data.Xcen, data.Ycen, data.Zcen, data.RotAngle, CAD_PLANE_XY );
    35.     CadDrawAddVertex( x[i], y[i], data.Zcen );
    36.   }
    37.   if (bFill){
    38.     CadDrawPolygon();
    39.   }else{
    40.     CadDrawPolyline();
    41.   }
    42. }

    Tôi mới học C#. Giờ muốn chuyển đoạn này sang C#. Nhưng gặp vấn đề vướng mắc.
    Trong C++ hỗ trợ con trỏ nhưng C# thì khai báo khó quá.
    Trong đoạn code này. Những chỗ màu đỏ chương trình toàn báo lỗi.
    Tôi sửa bằng cách khai báo thêm như sau:

    int tg = 0;
    CadCustomGetData( hEnt,ref tg );


    Khi đó, hàm trả lại địa chỉ của biến data và lưu vào biến tg.
    Nhưng tôi không thể trỏ được địa chỉ của biến data đến biến tg.

    Ai biết cách trỏ địa chỉ của biến data đến địa chỉ được lưu trong biến tg và đọc dữ liệu từ bộ nhớ ở địa chỉ lưu trong biến tg vào biến datathì chỉ dùm với.
    Ai có tài liệu nói về cách khai báo và sử dụng biến con trỏ thì share cho tôi với.
    Địa chỉ mail của tôi là: capricorn_uct@yahoo.com

  2. #2
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Trong C# ko có định hình rõ 1 khái niệm về con trỏ mà nó được chuyển đổi thành nhiều kiểu dữ liệu để hỗ trợ chẳng hạn như danh sách (ArrayList).
    Theo như cách nói của người sáng lập C# thì họ xóa bỏ hoàn toàn con trỏ và dùng các phương thức khác để thay thế chức năng của con trỏ.

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

    C# là ngôn ngữ thuần hướng đối tượng, sử dụng đối tượng hiệu quả hơn con trỏ.

  4. #4
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    Nếu là con trỏ trong C# thì bạn nghiên cứu unsafe code thử xem.
    Keep moving forward!

    ... Retired ...

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