2012-11-09 76 views
11

Tôi đang viết một ứng dụng, nơi tôi có khá nhiều thuộc tính của Kiểu Boolean định nghĩa:thay đổi mặc định Giá trị Boolean

private bool kajmak = true; 
    public bool Kajmak 
    { 
     get { return kajmak ; } 
     set { kajmak = value; FirePropertyChanged(() => Kajmak); } 
    } 

Như bạn thấy, tôi đặt kajmak để true lúc đầu ..- lý do là không liên quan-. (Bạn có thể biết rằng giá trị mặc định của biến bool là false).

Bây giờ, có cách nào không, để thay đổi giá trị mặc định của bool thành true? Vì vậy, tôi sẽ viết:

private bool kajmak; //kajmak = true 

thay vì

private bool kajmak = true; 

tôi có thể làm gì để đạt được điều này?

+2

Tôi không tin rằng bạn có thể thay đổi điều này. Chỉ cần tiếp tục làm những gì bạn đang làm. –

+1

Đừng làm điều đó, đó là rắc rối nhiều hơn nó có giá trị, thậm chí không nghĩ về việc làm nó. – Davio

+2

Thậm chí nếu bạn có thể ... bạn sẽ đạt được điều gì? –

Trả lời

17

Bởi vì các phép toán luận là sai theo mặc định, tôi sử dụng các biểu mẫu tích cực trong tên của mình, chẳng hạn như IsInitialized, HasSomething v.v. mà tôi muốn bị sai theo mặc định cho đến khi tôi đặt chúng một cách rõ ràng.

Nếu bạn thấy mình cần điều gì đó đúng theo mặc định, có thể bạn cần đổi tên biến của mình để có ý nghĩa hơn khi mặc định là sai.

+0

Tôi luôn làm điều này, và sau đó tôi nhận ra đó là một lý lẽ ngớ ngẩn khi tôi bắt gặp một kịch bản mà tôi muốn hình thức tích cực là đúng mặc định. Điều đó về cơ bản đảo ngược đối số này :) –

+1

Vâng, bạn luôn có thể đặt chúng thành true trong hàm tạo của bạn. :) – Davio

0

Không, không có khả năng thay đổi giá trị mặc định. Nếu bạn có thể thay đổi giá trị mặc định, nó sẽ không được mặc định nữa;).

Nhưng để thiết lập mặc định có giá trị null, bạn có thể sử dụng này:

bool? kajmak; 

Nhưng đó không phải là những gì bạn muốn ...

3

số Không có cách nào để thay đổi giá trị mặc định được gán bởi .NET. Tốt nhất là một trong hai gán mặc định thích hợp trong các thành viên riêng:

private book kajmak = false; 

Hoặc sử dụng Constructor như bạn đang phải và gán giá trị mặc định lớp có:

public class SomeClass 
{ 
    public SomeClass() 
    { 
     Kajmak = false; 
    } 

    public book Kajmak { get; set; } 
} 
-2

Bạn có thể tạo một lớp myBool mặc định là false và chuyển đổi ngầm từ bool sang lớp của bạn.

+0

Quá nhiều chi phí, không thực hiện việc này – user230910

0

Trong quá trình cố gắng làm điều gì đó tương tự, một đồng nghiệp đã khai sáng cho tôi về bool? kiểu. Nó có thể là true, false hoặc null và không phản đối việc ở bên trái của một trình so sánh như vậy. Điều này không trả lời câu hỏi của bạn về cách mặc định bool thành true, nhưng không giải quyết vấn đề khái niệm của bạn về việc muốn biến của bạn được xác định là đúng theo mặc định.

Tôi chỉ đăng vì đây là kết quả hàng đầu khi tôi tìm kiếm và thông tin này hữu ích cho tôi. Hy vọng rằng nó sẽ được cho những người khác tìm thấy trang này.

0

Trong dịch vụ:

public bool Kajmak { get; set; } = true; 
Các vấn đề liên quan