2009-02-26 62 views

Trả lời

38

Trong C# bạn có thể sử dụng từ khóa mặc định để xác định giá trị mặc định.

Ví dụ:

 
default(bool) 
default(int) 
default(int?) 
+1

Cách "chung" tốt để nhận thông tin. Nên được chấp nhận làm câu trả lời! –

3

Phụ thuộc vào loại biến. Nếu kiểu có thể là null thì giá trị mặc định của nó sẽ là null. Các kiểu dễ đọc sẽ bắt đầu rỗng.

loại
  • Complex (String, StringBuilder) = null
  • loại Numeric (int, số thập phân, đôi, byte) = 0
  • Boolean = false
  • DateTime = DateTime.MinValue (01/01/0001 00:00:00)

Bạn có thể thiết lập một giá trị ban đầu sử dụng:

chuỗi s1 = " kiểm tra";

Dim s1 As String = "test"

24

Bạn có nghĩa là một (phương pháp) biến? hoặc một trường (trên một thể hiện hoặc kiểu)?

Đối với biến cấp phương pháp (ít nhất là C#) thì không liên quan, vì "chuyển nhượng xác định" có nghĩa là bạn phải đặt giá trị trước khi bạn có thể đọc.

Fields mặc định cho Bitwise zero nhà nước:

  • với nhiều loại tài liệu tham khảo (bao gồm string) có nghĩa là vô
  • cho Nullable<T> (int? vv) có nghĩa là vô
  • cho numerics đó có nghĩa là 0
  • cho enums có nghĩa là 0 ngay cả khi không có enum có giá trị 0 được xác định
  • cho bools có nghĩa là f alse
  • cho DateTime, có nghĩa là giống như MINVALUE
  • cho cấu trúc khác, bạn sẽ phải kiểm tra giấy tờ của họ, nhưng nó sẽ là một (hy vọng hợp lý) "zero/trống rỗng" giá trị
12

Điều này có thể được tìm thấy trong MSDN:

Visual Basic.NET định nghĩa các kiểu dữ liệu sau:

các loại giá trị không thể thiếu byte (1-byte unsigned integer), ngắn (2-byte ký số nguyên), Integer (4 -byte ký số nguyên), và dài (8-byte ký số nguyên). Những loại này ánh xạ với System.Byte, System.Int16, System.Int32 và System.Int64, tương ứng. Giá trị mặc định của loại tích phân tương đương với chữ số 0.

Loại giá trị dấu phẩy động Đơn (điểm nổi 4 byte) và Đôi (dấu phẩy động 8 byte). Các loại này ánh xạ tới System.Single và System.Double, tương ứng. Giá trị mặc định của loại dấu phẩy động tương đương với chữ số 0.

Loại thập phân (giá trị thập phân 16 byte), ánh xạ tới System.Decimal. Giá trị mặc định của số thập phân tương đương với chữ số 0D.

Loại giá trị Boolean, đại diện cho giá trị chân lý, thường là kết quả của phép toán quan hệ hoặc logic. Chữ là loại System.Boolean. Giá trị mặc định của kiểu Boolean tương đương với Sai chữ.

Loại giá trị ngày, biểu thị ngày và/hoặc thời gian và bản đồ cho System.DateTime. Giá trị mặc định của loại Ngày tương đương với chữ # 01/01/0001 12:00:00 AM #.

Loại giá trị Char, đại diện cho một ký tự Unicode đơn và ánh xạ tới System.Char. Giá trị mặc định của loại Char tương đương với biểu thức hằng số ChrW (0).

Loại tham chiếu chuỗi, biểu thị chuỗi ký tự Unicode và ánh xạ tới System.String. Giá trị mặc định của loại Chuỗi là tham chiếu null.

http://msdn.microsoft.com/en-us/library/aa711900.aspx

+0

Cảm ơn mọi người .. Vấn đề của tôi đã được giải quyết. Câu trả lời của bạn được đánh giá cao. –

4

C đặc điểm kỹ thuật # ngôn ngữ khẳng định rằng cho kiểu giá trị giá trị mặc định là giống như một của constructor mặc định và cho loại tài liệu tham khảo nó là null được giao:

Vì vậy, giá trị hàm tạo mặc định của loại giá trị là:

Đối với tất cả các kiểu đơn giản, mặc địnhgiá trị 0 là giá trị sản xuất bởi một mẫu bit của tất cả các số không:

  • Đối SByte, byte, short, ushort, int, uint, dài, và ulong, giá trị mặc định là 0.

  • Đối với char, giá trị mặc định là '\ x0000'. Đối với phao, giá trị mặc định
    là 0,0f.

  • Đối với gấp đôi, giá trị mặc định là 0,0d. Đối với thập phân, giá trị mặc định là 0,0m. Đối với bool, giá trị mặc định là false.

  • Đối với một enum-typeE, giá trị mặc định là 0.

  • Đối với một cấu trúc kiểu, giá trị mặc định là giá trị sản xuất bởi thiết lập tất cả các lĩnh vực kiểu giá trị để giá trị mặc định của họ và tất cả trường kiểu tham chiếu thành null.

http://msdn.microsoft.com/en-us/library/aa691142(v=VS.71).aspx

Chuỗi không phải là một loại giá trị.

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