2010-01-16 19 views
11

thể trùng lặp:
Most Useful Attributes in C#Thuộc tính .Net nào mà mọi người áp dụng cho mã của họ?

Tôi luôn cảm thấy rằng tôi đang thiếu chức năng mà có thể đạt được trong Net bằng cách đơn giản áp dụng thuộc tính đến các lớp học, phương pháp, tài sản vv Nó không giúp intellisense không thể hiển thị tất cả các thuộc tính thích hợp vì chúng có thể được áp dụng bình thường trong một loạt các kịch bản.

Dưới đây là một vài thuộc tính tôi thích sử dụng:

[DebuggerHidden] - đặt này trên các phương pháp ngăn ngừa sự debugger Visual Studio từ nhảy vào để mã. Điều này rất hữu ích nếu bạn có một sự kiện liên tục kích hoạt và làm gián đoạn quá trình gỡ lỗi của bạn.

[EditorBrowsable (EditorBrowsableState.Never)] - Ẩn phương thức từ intellisense. Tôi không sử dụng thường xuyên, nhưng nó tiện dụng khi xây dựng các thành phần tái sử dụng và bạn muốn ẩn một số phương pháp kiểm tra hoặc gỡ lỗi.

Tôi muốn biết những gì người khác đang sử dụng và những mẹo mà mọi người có.

+2

+1 Câu hỏi hay, muốn xem một số câu trả lời. –

+1

Tôi thực sự sẽ bỏ phiếu để đóng không phải là một câu hỏi thực sự. Câu trả lời là, "tất cả chúng". Các thuộc tính không được tạo để không được sử dụng. –

+2

dup? http://stackoverflow.com/questions/144833/most-useful-attributes-in-c –

Trả lời

4

Tôi chỉ tìm thấy các nguồn lực này:

 

// The DebuggerDisplayAttribute can be a sweet shortcut to avoid expanding 
// the object to get to the value of a given property when debugging. 
[DebuggerDisplay("ProductName = {ProductName},ProductSKU= {ProductSKU}")] 
public class Product 
{ 
    public string ProductName { get; set; } 
    public string ProductSKU { get; set; } 
} 

// This attribute is great to skip through methods or properties 
// that only have getters and setters defined. 
[DebuggerStepThrough()] 
public virtual int AddressId 
{ 
    get { return _AddressId;}  
    set 
    { 
     _AddressId = value; 
     OnPropertyChanged("AddressId"); 
    } 
} 

// The method below is marked with the ObsoleteAttribute. 
// Any code that attempts to call this method will get a warning. 
[Obsolete("Do not call this method.")] 
private static void SomeDeprecatedMethod() { } 

// similar to using a combination of the DebuggerHidden attribute, which hides 
// the code from the debugger, and the DebuggerStepThrough attribute, which tells 
// the debugger to step through, rather than into, the code it is applied to. 
[DebuggerNonUserCode()] 
private static void SomeInternalCode() { } 
1

Tôi thường sử dụng [Có thể duyệt qua (sai)][Serializable].

[Có thể duyệt (sai)] trên thuộc tính ẩn thuộc tính khỏi PropertyGrid.

Đây có phải là cộng đồng wiki không?

+0

Tôi mới vào trang này, tôi chưa xem wiki, tôi sẽ làm ngay bây giờ. Cảm ơn – Nanook

0
[DebuggerDisplay(....)] 

để xác định trường nào của cấu trúc hoặc lớp tôi muốn xem trong màn hình trình gỡ lỗi.

1

Tôi thực sự như DebuggerDisplay:

[DebuggerDisplay("Count = {count}")] 
class MyHashtable 
{ 
    public int count = 4; 
} 

Nó sẽ hướng dẫn VS gì để hiển thị khi lơ lửng trên mặt hàng đó.

2

Chúng tôi có rất nhiều mã phù CLS và một số không, do đó, nó rõ ràng dấu cộng cho chúng tôi:

[assembly:CLSCompliant(true)] 
[CLSCompliant(true)] 

Điều này giúp chúng tôi rất nhiều.

+2

Oh và [ComVisibleAttribute (true)] – mjsabby

0

Đôi khi BindableAttribute là tốt đẹp để tác động đến hành vi ràng buộc của các thành phần. Có thể hữu ích khi kích hoạt Reflector và tìm kiếm "Attribute" và duyệt qua một chút. Nó phụ thuộc vào ý định của bạn, cái nào là hữu ích.

0

Tôi đã sử dụng thuộc tính có điều kiện trong quá trình tạo ứng dụng demo. Tôi đã tạo phiên bản đầy đủ và ngăn chặn một số chức năng sử dụng các loại thuộc tính này.

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