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

Đề tài: Lỗi cannot have instance field initializers in structs sửa như thế nào?

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    32

    Unhappy Lỗi cannot have instance field initializers in structs sửa như thế nào?

    Mình khai báo 1 struct ngắn gọn như:
    Visual C# Code:
    1.         {
    2.             int index;
    3.             int[,] s = new int[pSIZE,pSIZE];
    4.             int dad;
    5.         }

    Nhưng bị báo lỗi "cannot have instance field initializers in structs" ngay dòng int[,] s = new int[pSIZE,pSIZE];. Vì mình còn rất ít kinh nghiệm lập trình C#, nên mong được anh em hỗ trợ.

  2. #2
    Ngày gia nhập
    12 2010
    Bài viết
    67

    àk, báo lỗi trên là do struct thì không thể chứa "đối tượng" được, nó bị lỗi do từ khóa "new". Bạn có thể thể sử dụng public class State thay vì struct

  3. #3
    Ngày gia nhập
    03 2008
    Bài viết
    32

    Ủa, vậy có cách nào khai báo mảng trong struct của C# không bạn :(

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

    int[,] s=new int[,]{{},{}};
    hok bik có phải cái đó hok

  5. #5
    Ngày gia nhập
    12 2010
    Bài viết
    67

    tất nhiên nếu mún khai báo mảng trong struct thì vẫn được. tuy nhiên lúc khai báo bạn cứ khai báo thế này:
    int[,] a; //không cần phải xác định cái mảng bằng cái rỳ.
    Viết 1 phương thức (hoặc thuộc tính?) để xác định giá trị của mảng đó, ví dụ:
    Code:
    public void Get_a(int length)
    {
       a = new int[length,length]; //lúc này bạn đã khởi tại được mảng a rồi đó!
    }

  6. #6
    Ngày gia nhập
    06 2009
    Nơi ở
    Cái hộp
    Bài viết
    1,255

    Mặc định Lỗi cannot have instance field initializers in structs sửa như thế nào?

    Trích dẫn Nguyên bản được gửi bởi cudang9005 Xem bài viết
    àk, báo lỗi trên là do struct thì không thể chứa "đối tượng" được, nó bị lỗi do từ khóa "new". Bạn có thể thể sử dụng public class State thay vì struct
    Bạn không nên giải thích một cách tùy tiện làm người khác hiểu sai vấn đề.

    Trong .Net, bạn có thể khởi tạo giá trị cho các field của class vì các phần khởi tạo này sẽ được đưa vào trong default constructor khi được biên dịch. Tuy nhiên trong struct, default constructor ko được sử dụng và cũng không được gọi.
    Men talk of killing time, while time quietly kills them.
    Time is what we want most, but what we use worst.
    ------------------------------
    YinYang's Programming Blog

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

  1. Kỹ thuật C++ Xác định 1 object là một instance of class như thế nào?
    Gửi bởi integer trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 21-10-2013, 03:28 PM
  2. Instance và Object khác nhau như thế nào ???
    Gửi bởi trangkizd_91 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 10
    Bài viết cuối: 18-08-2013, 05:43 PM
  3. ADO.NET cố định một số field của datagridview C# khi số lượng field quá nhiều
    Gửi bởi mentostrinh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 03-04-2012, 12:47 AM
  4. Lỗi: cannot have instance field initializers in structs???
    Gửi bởi ducnhan86 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 26-02-2011, 08:49 PM
  5. Lỗi Crytalreport Chọn 4 field nhung chi hien thi co 3 field
    Gửi bởi honglaumong9 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 07-06-2010, 09:51 AM

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