2010-02-22 61 views
5

Biến tĩnh có chức năng giống hoặc tương tự trong C# khi chúng thực hiện trong C++?Sự khác nhau giữa biến tĩnh trong C++ so với C# là gì?

Edit:

Với C++ bạn có thể sử dụng các biến tĩnh trong nhiều hoàn cảnh khác nhau - chẳng hạn như: 1) Các biến toàn cục, 2) biến chức năng địa phương, 3) thành viên Class - Sẽ tập quán tương tự như trong C# cư xử tương tự như của C++?

Trả lời

5

Tĩnh có nhiều ý nghĩa trong C++.

Biến tĩnh trong C# về cơ bản chỉ có một ý nghĩa duy nhất: biến được sắp xếp theo loại. Trong C#, static trên một kiểu được sử dụng để biểu thị một biến kiểu có phạm vi. Tĩnh trên một phương thức là một phương pháp kiểu phạm vi. Tĩnh cũng có thể được sử dụng trên một lớp để biểu thị rằng toàn bộ lớp chỉ bao gồm các phương thức tĩnh, các thuộc tính và các trường.

Không có sự tương đương với các biến tĩnh trong phạm vi chức năng hoặc các giá trị tĩnh không có lớp.


Edit:

Trong phản ứng để chỉnh sửa của bạn, C# cơ bản chỉ sử dụng tĩnh cho các thành viên lớp. Globals và các biến chức năng tĩnh cục bộ không được hỗ trợ trong C#. Ngoài ra, như tôi đã đề cập ở trên, bạn có thể gắn cờ toàn bộ một lớp "tĩnh", về cơ bản chỉ làm cho trình biên dịch kiểm tra rằng không có thành phần không tĩnh trong lớp.

0

Biến tĩnh trong C# hoạt động giống như biến thành viên tĩnh trong C++. Đó là trong số nhiều ý nghĩa của từ khóa 'tĩnh' trong C++ chỉ một trong số chúng tồn tại trong ngữ cảnh của C#. Ví dụ. bạn không thể giới hạn phạm vi đối với tệp có tĩnh (tính năng C hoàn toàn) trong C#

1

From MSDN: Từ khóa tĩnh: Trong C++, static có thể được sử dụng để khai báo các thực thể cấp lớp và khai báo các loại cụ thể cho một mô-đun. Trong C#, static chỉ được sử dụng để khai báo các thực thể mức lớp.

Các vấn đề liên quan