Tôi đang xác định các cấu trúc được nhận và gửi qua kênh giao tiếp giữa các thiết bị khác nhau và các ngôn ngữ lập trình khác nhau. Để tôi xác định rõ bố cục của chúng trong bộ nhớ bằng cách sử dụng StructLayoutAttribute (tuần tự, gói = 1 - trong trường hợp nó quan trọng).Hiệu ứng StructLayoutAttribute trên các thuộc tính trong C# là gì?
Từ tài liệu, tôi biết nó hoạt động khi cấu trúc chỉ chứa các trường. Nó dường như cũng làm việc cho các thuộc tính 'đơn giản' (với trống rỗng; bộ;). Tuy nhiên tôi không biết nếu nó luôn luôn như vậy.
Vì vậy, câu hỏi của tôi liên quan đến hiệu ứng StructLayoutAttribute về tài sản được chia cho hai:
- Do tính chất đơn giản (một lần nữa, trống get; set;) cư xử giống như các lĩnh vực?
- Các thuộc tính khác hoạt động như thế nào, ví dụ các thuộc tính mà chúng nhận được là tính toán trên các thuộc tính khác? Họ có bị bỏ qua (vì tôi không thấy một mục dữ liệu thực sự đằng sau họ)? Họ có nhớ không?
Vì vậy, 3 câu trả lời và không ai đưa ra bất kỳ đầu vào nào về cách thức hoạt động thực tế. Tôi biết bạn không thể phụ thuộc vào nó cho spec, nhưng nếu bạn sử dụng một trình biên dịch cụ thể bạn có thể. – leppie
Tại sao bạn sẽ phụ thuộc vào trình biên dịch cụ thể khi ngôn ngữ cung cấp cơ sở để kiểm soát hành vi? BTW liên kết tôi đã cung cấp chứa các chi tiết về cách trình biên dịch hoạt động. – Stilgar
Tôi đã kết thúc việc tạo các trường riêng và các thuộc tính được tính toán công khai. Vì tôi sử dụng việc tạo mã, đó là thay đổi một lần. – Asaf