- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个类 (Foo),它延迟加载一个名为 (Bar) 的属性。防止错误使用(由于智能感知或缺乏经验的员工)未初始化的支持字段的首选方法是什么?
我可以想到 3 个选项:
class Foo {
// option 1 - Easy to use this.bar by mistake.
string bar;
string Bar {
lấy {
// logic to lazy load bar
return bar;
}
}
// option 2 - Harder to use this._bar by mistake. It is more obscure.
string _bar2;
string Bar2 {
lấy {
// logic to lazy load bar2
return _bar2;
}
}
//option 3 - Very hard to use the backing field by mistake.
class BackingFields {
public string bar;
}
BackingFields fields = new BackingFields();
string Bar3 {
lấy {
// logic to lazy load bar
return fields.bar;
}
}
}
请记住,我唯一希望人们使用支持字段栏的地方是属性的 setter 和 getter。在类里面的其他任何地方,他们都应该始终使用 this.Bar
gia hạn
我目前正在使用 the following Lazy implementation (并非针对所有具有支持字段的属性,而是针对需要延迟加载、同步和通知的特定属性)。它也可以扩展以支持 future (稍后在单独的线程中强制评估)
Để ý 我的实现在读取时锁定,因为它支持外部集。
此外,我想提一下,我认为这是一个可以在 Ruby for example 中克服的语言限制。 .
您可以 implement lazy以这种方式。
x = lazy do
puts "<<< Evaluating lazy value >>>"
"lazy value"
kết thúc
puts x
# <<< Evaluating lazy value >>>
# lazy value
câu trả lời hay nhất
Cách sử dụng ObsoleteAttribute
Và #thực dụng
- 很难错过!
void Test1()
{
_prop = ""; // warning given
}
public string Prop
{
#pragma warning disable 0618
get { return _prop; }
set { _prop = value; }
#pragma warning restore 0618
}
[Obsolete("This is the backing field for lazy data; do not use!!")]
private string _prop;
void Test2()
{
_prop = ""; // warning given
}
关于c# - 在 C# 中防止错误使用支持字段的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/560549/
Tôi có một ứng dụng trong đó nhiều đối tượng mở rộng một lớp trừu tượng xác định những thứ như create() edit() lấy() và delete(). Vì mỗi lớp con sử dụng cùng một logic cho các hàm này nên lớp trừu tượng định nghĩa giá trị mặc định
Tôi đang sử dụng $anchorScroll để cuộn lên đầu trang nơi phần tử html có ID #brand. Mã AngularJS: $location.hash(
Tôi muốn tắt nhấp chuột phải vào ứng dụng của mình để cung cấp tùy chọn cài đặt ứng dụng trên máy tính để bàn. Làm thế nào để tôi làm một cái gì đó như thế này? Câu trả lời hay nhất Nhấp chuột phải vào dự án trong Visual Studio và chọn Thuộc tính. Có một hộp kiểm "Kích hoạt hoạt động của trình duyệt"
Tôi đang sử dụng jquery để định vị div, trong css của tôi, tôi có div.right-sm:hover{background-color: blue} và tôi muốn dừng di chuột bằng jquery: $(this
Vì vậy, tôi đang cố gắng sao chép chức năng thuộc tính "giữ chỗ" html5. Một điều tôi hiện đang mắc kẹt là dấu mũ xuất hiện ngay lập tức ở đầu đầu vào khi phần tử được lấy nét. Như hiện tại, dấu mũ xuất hiện ở nơi người dùng nhấp vào và sau đó khi tôi sử dụng jQuery
Khi biểu mẫu được điền và gửi, nếu bạn làm mới trang, nó cho biết biểu mẫu sẽ được gửi lại. (Gửi lại mẫu đơn). Cách tốt để ngăn chặn điều này xảy ra là gì? Hoặc chấm dứt phiên này? Có hướng dẫn nào về điều này không? Cảm ơn bạn đã có câu trả lời hay nhất sau khi xử lý thư POST
Tôi muốn ngăn không cho @ được nhập vào đầu vào. Nhưng nó không hoạt động, có biết tại sao không? $(function() { $(document).on('keyup', '[placeholder="x"]', vui vẻ
Tôi đang tạo một ứng dụng sử dụng PHP và liên quan đến MySQL. Làm cách nào để "nhóm truy vấn lại với nhau" nếu xảy ra lỗi trong khi yêu cầu, kiểm tra xem nó có thành công hay không và sau đó thực hiện tác động thực tế lên bảng thực. Nếu cập nhật thực tế vào bảng không thành công, hãy hoàn nguyên về trạng thái trước khi cập nhật
Câu hỏi này đã có câu trả lời ở đây: Đã đóng 11 năm trước. Có thể trùng lặp: Trình obfuscator Java tốt nhất? Ví dụ của tôi, tôi biết rằng Eclipse cung cấp một plugin dịch ngược. Và
Đây là một câu đố thể hiện vấn đề của tôi:JSFiddle Tôi đang tạo một menu thả xuống tùy chỉnh (tôi thực sự đang sử dụng biểu tượng icomoon thay vì chữ V)... Có vẻ ổn, nhưng ::after của phần tử cha đang chặn lựa chọn: (
Bất cứ khi nào tôi viết mã yêu cầu nhiều điều kiện, tôi sẽ làm điều này: if foo: if bar: if foobar: if barfoo: if foobarfoo:
Tôi không chắc thuật ngữ này có chính xác hay không, bạn có thể sử dụng phương pháp mã hóa nào để gây khó khăn cho người khác sửa đổi tệp nhị phân/tập hợp để bỏ qua kiểm tra: ví dụ: trong mã nguồn. xác minh boolResult = verify();
Tôi đang tìm một cách đơn giản để kiểm tra nhiều bảng phần nhằm xác định xem một số phần nhất định đã tồn tại hay chưa trước khi được thêm vào bảng đã cho. Ý tưởng hay nhất mà tôi nghĩ ra cho đến nay là một bảng trợ giúp chỉ liệt kê từng PN từ tất cả các bảng trong một cột bằng một khóa duy nhất;
Câu hỏi này đã có câu trả lời ở đây: jquery dừng trẻ em kích hoạt sự kiện cha mẹ (7 câu trả lời) Đã đóng 8 năm trước. Tôi không chắc liệu điều này có thực sự sủi bọt hay không, tôi sẽ giải thích. Tôi có cái này:
Tôi có một ứng dụng web Spring MVC (không chắc thông tin này có quan trọng không, nhưng có thể là như vậy) sử dụng ModelAndView để truyền các giá trị chuỗi vào tệp JSP. Định dạng của giá trị chuỗi là: d@.
Tôi đang cố gắng sử dụng phương thức khóa biểu mẫu để bảo vệ csrf tại đây http://net.tutsplus.com/tutorials/php/secure-your-forms-with-form-keys/
Htentities có phải là giải pháp tốt nhất để ngăn chặn XSS trong PHP không? Tôi cũng muốn cho phép các thẻ đơn giản như b, i, a và img. Giải pháp tốt nhất để đạt được điều này là gì? Tôi đã xem xét bbcode nhưng nhận thấy rằng nếu không
Tôi có một dịch vụ JAX-RS rất cơ bản (lớp BookService bên dưới) cho phép tạo các thực thể thuộc loại Sách (cũng bên dưới). Tải trọng POST { "acquisitionDate": 14188
Tôi đang sử dụng Polymer 1.5 và tôi thực sự cần biến "this" không được ánh xạ ra bên ngoài. Tôi biết bản đánh máy thực hiện điều này vì một số lý do hợp lệ.
Câu hỏi này đã có câu trả lời ở đây: Thuộc tính chỉ đọc ở cấp độ lớp trong Python (3 câu trả lời) Đã đóng 6 năm trước. Có cách nào để thực hiện việc này bằng cách ghi đè __set của biến thể hiện
Tôi là một lập trình viên xuất sắc, rất giỏi!